Retina graphics under iOS 5.0 SDK - nope

One of life's mysteries is how the new iPad handles high resolution graphics. At least this is one of the mysteries of my life at the moment.

Of course this is largely self inflicted. I am in the process of finalising a new iPad app and I am loathed to update to Xcode 4.3.1 and the iOS 5.1 SDK at this late stage, mainly because it involved upgrading to Lion.

If I was on the 5.1 SDK I suspect all would be straight forward and all of the good information in the Apple dev world would apply and make sense. Unfortunately it seems that all bets are off if your app was compiled under the 5.0 SDK.

The first example I found was that the UIImage imageNamed: method does not automatically load the '@2x' version when running on the new iPad.

After a little nosing around I found that the screen scale factor returned at runtime on the new iPad is 1.0! So I can't even detect the scale and explicitly load the correct image version.

To be fair, the Apple dev documentation does state that you need to use the 5.1 SDK to use retina graphics, so this should not have been such a surprise.

The thing I still find a bit confusing is that the app artwork looks much better on the new iPad. It appears that if you just load a hi-res image the device displays it at it's correct resolution (ie when the image dimensions in pixels are twice the UIView object's dimensions in points). So I could just use hi-res graphics through-out the app, but the downside is that this could look worse on a non-retina iPad (where the device will have to scale down the image).

I am reluctantly coming to the conclusion that I need to do the upgrades. Oh well, Lion can't be that bad. Can it?