The new iPad Mini has a 7.9 inch screen size. Does it have a retina display? Will it automatically scale existing xibs and storyboards or do we have to create two versions of each?
Do we deal with it similar to the way we deal with the iPhone 5?
How would I create a definition or a condition to see if the device is running iPad Mini?
To detect iPad Mini (any model) i'm using this code (tested on iOS 10.x):
Build apps for iPad 2 resolution. The new iPad Mini is non-retina with a resolution of 1024x768 which means Apps that already worked on an iPad 1 or iPad 2 automatically work on iPad Mini.
iPad mini uses the same resolution as the non-retina iPads, iOS will use 1x graphics. Refer to this link... link
If your app works on an iPad 1 or an iPad 2 it will work as-is on the new iPad mini. There is no retina display on the mini. From an app's perspective it's identical to the iPad 2.
Edit: It was asked how to determine when an app is running on an iPad mini. There is no API check for this. The screen size doesn't help.
UI_USER_INTERFACE_IDIOM()
doesn't help. Until someone actually has one, there is no way to know if theUIScreenMode pixelAspectRatio
is any different (probably it's the same as the iPad 2).This leaves only one possibility - to get the
machine
fromuname()
and hardcode a check against this value. This is never a desired approach. And as of this writing, we don't know what the value will be. Perhaps iPad5,x assuming the 4th gen iPad is iPad4,x.Edit: So far I've seen a report that the iPad mini returns iPad2,5 (yes, that's a two comma five) as well as iPad2,6 and iPad2,7 for the machine name.
I think Phil Schiller (Apple's Senior Vice President) said it best in press event unveiling the iPad Mini (approximately 53:00 into the keynote)
He then goes on to say:
So, in summary and to answer your question, no the iPad Mini does not have a Retina display, and you don't have to do any additional work. The iPad Mini will utilize the storyboard or xib you have already created for iPads.
Then as far as detection goes, I can't find anything to prove this yet (because they haven't been released yet) but I'd be willing to bet that the following will output "iPad Mini".
EDIT:
On my 16GB iPad Mini (Wifi only) this returns:
Images for ipad mini will be same for ipad 1 and 2. But it is recommended you use @2x images for retina screen too. Because, once your app is on app store, you cannot stop people from downloading it on ipad with retina display.
So at this point of time, you'll have to make images for both retina and non retina.
Programatically, separate xib files are NOT required for ipad retina display. Just keep imageName@2x.png too for all image assets.