Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iPad 3 Retina Display, @2x images, and apps already in the store

So some iPad in the future is probably going to have Retina Display. And Apple is most likely going to stick to the @2x paradigm. I've been expecting this for awhile and so I already have @2x artwork for iPad in my apps; some are already in the app store.

My question is this: Will I need to recompile and/or resubmit apps to use said artwork when this mythical iPad is released for it to take advantage of these files? Or is this something baked into the OS itself and it should just automagically use them?

(Since the same thing happened before, what happened w/ apps released under the pre-iPhone-4 SDKs that happened to have the right artwork? Did they just work?)

like image 237
DOOManiac Avatar asked Feb 21 '12 03:02

DOOManiac


1 Answers

I experimented with a retina iPad today, and here's what seems to happen:

  • If an app is compiled with a reasonably recent Xcode (probably 4.2+), @2x images are used, just like when the iPhone 4 came out.
  • If an app was compiled with Xcode 3, @2x images are not used, even if present. (e.g. in an iphone-4-capable hybrid app.)

(We have a number of XCode-3 based projects, many of which are hybrid for the retina iPhone. None of them used the @2x graphics on the new ipad. When I compiled a test project in both Xcode 3 and Xcode 4, the 4 build used the retina resource and the 3 build did not. Further experiments showed that the difference is compiled into the executable itself, so it's not just a info.plist tweak like I was hoping.)

[eta.: my hypothesis is that compiling with an earlier SDK links you against a different version of UIKit at runtime. Strange differences in behavior as I update our code seem to bear this out. If anyone knows the incantation to know for sure, please comment.]

[edited to add, again: there's some nib difference as well. An old project opened in xcode 4 would not use the @2x graphics until I re-saved my MainWindow.nib; then it did throughout, with no other changes. I suspect a hidden property of the UIWindow object.]

like image 97
rgeorge Avatar answered Jan 02 '23 10:01

rgeorge