views:

1145

answers:

2

I'm trying to make an app that displays something in real-world units. It's not a ruler app, but it wants that kind of precision.

It already looks like the iPhone and iPod touch have different screen resolutions (160 & 163 respectively)

I've found this http://stackoverflow.com/questions/610193/calculating-pixel-size-on-an-iphone and this http://stackoverflow.com/questions/1255708/iphone-screen-resolution-changes-in-future-hardware and this http://forums.macrumors.com/showthread.php?t=350612

From my reading it sounds like I can treat the 320 * 480 screen space as 2 * 3.5 inches, ignoring the difference between the iPod and the iPhone resolution, which only seems to affect the clarity of the image, not the size.

My question(s) are: is this true? any way to determine this (320 "pixels" == 2 inches) in code, so if it changes I don't have to update.

+3  A: 

I wouldn't worry about it for now, if Apple changed it and didn't tell their developers then they would lose customers themselves. Just hard code your app to work in this environment for now.

The PPI shouldn't be different, but all other apps run fine and the only hardware differences Apple tells us to account for are microphone, camera, Internet connection, and phone-ness. (Even if the PPI is different, it's still 320X480 pixels no matter how many inches are used.)

JoePasq
+1 for pragmatic answer, though I expect different resolutions will be forthcoming -- and you can solve it then.
DarkSquid
fair enough. If there was a way, I would implement it, but it doesn't seem like there is a way.I'm still not sure if I have to account for the 163/160 ppi issue. Any thoughts?
Kenny Winker
A: 

If you look how you calculate ppi, you need to know the advertised screen size in inches. I believe you are safe to deal with [[UIScreen mainScreen] bounds] as JoePasq said. You can set a const of what you think an inch is for yourself and use the width and height of the bounds to represent your measurement. This will allow you app to scale if they ever do change the size of the screen.

Scott Densmore