60

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?

Mick MacCallum
  • 129,200
  • 40
  • 280
  • 281
MCKapur
  • 9,127
  • 9
  • 58
  • 101
  • 1
    Um, the accepted answer doesn't answer the second part of your question. – Dan Rosenstark Oct 23 '12 at 23:16
  • Nice work. I admit it's premature for this question. – Dan Rosenstark Oct 24 '12 at 01:46
  • NOTE: identifying models is problematic; don't know what future models may exist. iPad mini is consistent with most iPhone's; the reported bounds and scale yield close to actual device dimensions, if consider bounds to be in original iPhone units of 1/160". It is the OTHER iPad's that are "inconsistent" with Apple's original sizing for a "point" - they magnify the image ~20% compared to the reported bounds and scale. (bounds is in units of 1/132" rather than 1/160"). Now that iPad mini exists, one strategy is to design for it, and simply allow the other iPads to show everything 20% larger. – ToolmakerSteve Dec 11 '15 at 21:07

9 Answers9

60

Apps will work fine. But if you have some very small UI elements. you might want to revisit them due to the reduction in screen size.

  • there is no reduction in pixel size, so "revisiting" small UI elements is not the way to go – ColdLogic Oct 23 '12 at 20:17
  • 52
    I don't understand why people are downvoting this. It has to be correct. With the smaller screen, the physical dimensions of a UI element will become less. Pixels per inch are 163, as opposed to 132 for an iPad 2. So a UI element that is (say) 30 pixels by 30 pixels will be 0.227 inches square on an iPad 2, but only 0.184 inches square on an iPad mini. It is entirely reasonable to suppose that this difference will cause a decrease in the usability of the app on the iPad mini. – William Jockusch Oct 23 '12 at 20:22
  • 4
    This *is* correct. Elements will appear smaller than on the original iPad, even at the same pixel dimensions. Upvoted. – nielsbot Oct 23 '12 at 22:18
  • 3
    @ColdLogic there actually is a reduction in pixel size compared to the iPad and iPad, but an increase compared to the iPad 3. However, in iOS we rarely (never) talk in pixels but rather points, which is not the issue. The issue is that small UI elements will appear smaller on this new, smaller screen. +1 – Dan Rosenstark Oct 23 '12 at 23:18
  • @Yar I miss spoke in my previous statement. There is a reduction in pixel size, but not pixel resolution. It is true that the screen is smaller, and that any ui element will APPEAR smaller. However, the resolution remains the same. The images will not appear any less or more sharp because of the reduction in screen size. If you feel your elements aren't large enough, it is not because of the ipad mini screen, and is a larger ui problem, thus the reason for the downvotes. – ColdLogic Oct 24 '12 at 17:53
  • @ColdLogic sharpness? – Dan Rosenstark Oct 25 '12 at 04:36
  • @Yar guess I /facepalm your since you want to go the immature direction. – ColdLogic Oct 25 '12 at 23:39
  • 5
    I'm up-voting this. The buttons will be physically smaller on the screen, but the user's fingers will not be. The text will be physically smaller as well, but the user's eyesight will remain the same. I already have customers asking for a different design on iPad mini than on full size iPads. Just today, as the iPad minis came to the office by fedex, Apple released a new version of Xcode that included "iPad mini support." I haven't figured out exactly what that means, but hopefully it includes a way to distinguish a mini from a standard size iPad programatically. – Daniel T. Nov 03 '12 at 01:44
  • @DanielT. The "iPad mini support" added to Xcode is only to allow the Organizer to show details about the iPad mini. There is no API. There is no iPad mini Simulator. This was discussed in the Apple iOS dev forums a few days ago. – rmaddy Nov 10 '12 at 23:48
  • 1
    If you followed Apple's guidelines and kept buttons to a minimum of 44x44 points, then there will be no problem. The non-retina iPhones/iPods have the same PPI as the iPad mini (163 PPI) so the 44x44 guideline is essentially safe for all devices. – Mike Weller Nov 14 '12 at 10:50
  • @ColdLogic - your reasoning is incorrect. Unless a person has perfect eyesight, a UI element at the same resolution (number of pixels), on a smaller screen, may indeed be "too small". That is why Apple has a notion of "points" and "scale" of screen: otherwise EVERYTHING would be too tiny to see on a retina display (if it was displayed using same number of pixels). It ***IS*** usually desireable to change number of pixels when pixel density changes. – ToolmakerSteve Dec 11 '15 at 18:25
56

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 the UIScreenMode pixelAspectRatio is any different (probably it's the same as the iPad 2).

This leaves only one possibility - to get the machine from uname() 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.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
  • How does that work? I know with Apple everything "Just Works" but how is the app sized down? Does iOS use Auto layout to reposition everything? – Sam Spencer Oct 23 '12 at 21:49
  • 30
    There's no magic here. The iPad mini has a screen size of 1024x768, identical to the 1st two iPads. The pixels are physically smaller due to the screen being physically smaller, but the same number of pixels. – rmaddy Oct 23 '12 at 21:51
  • 2
    @Yar Updated with one report of the iPad mini's machine name. – rmaddy Nov 04 '12 at 05:49
7

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.

Beltalowda
  • 4,558
  • 2
  • 25
  • 33
7

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)

What screen size do we pick and why? And the team worked really hard thinking about this. We want an iPad that is capable of running all that amazing software written for iPad without the developers having to do any work...

He then goes on to say:

...And the pixels are even easier to remember because they're exactly the same. The original iPad and the iPad 2 are 1024 by 768 and the new iPad Mini is 1024 by 768. That means all of the software created for iPad works on the iPad Mini unchanged.

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".

NSLog(@"%@",[[UIDevice currentDevice] model]);

EDIT:

NSLog(@"\nMachine ID: %@\nModel: %@\nLocalized Model: %@",machineName(),[[UIDevice currentDevice] model],[[UIDevice currentDevice] localizedModel]);

NSString *machineName()
{

    struct utsname systemInfo;
    uname(&systemInfo);

    return [NSString stringWithCString:systemInfo.machine
                              encoding:NSUTF8StringEncoding];
}

On my 16GB iPad Mini (Wifi only) this returns:

Machine ID: iPad2,5
Model: iPad
Localized Model: iPad

Mick MacCallum
  • 129,200
  • 40
  • 280
  • 281
  • @JeffKelley Funny, verifying this was the first thing on my to-do list today when mine arrives! – Mick MacCallum Nov 02 '12 at 17:09
  • 2
    Great answer +1. This is the stupidest thing ever, "And the pixels are even easier to remember because they're exactly the same," since as devs we use points and not pixels, which SHOULD be different since it's smaller screen. I don't get this decision at all. – Dan Rosenstark Nov 04 '12 at 06:52
  • @JeffKelley what dou you mean with "nope outputs Ipad"? Does it output iPad2,5 for machineId or not? – AlexWien Mar 31 '13 at 15:31
  • The output of `[[UIDevice currentDevice] model]` is “iPad.” – Jeff Kelley Apr 01 '13 at 15:45
7

If the iPad Mini and the non-retina iPad's are going to be the same screen size regardless, couldn't you use something like what is used to determine whether the device screen is an iPhone 5 or iPhone 4:

#define IS_WIDESCREEN5 ( [ [ UIScreen mainScreen ] bounds ].size.height == 568 )
#define IS_WIDESCREEN4 ( [ [ UIScreen mainScreen ] bounds ].size.height == 480 )

So for iPad Mini, and non-retina iPad's, do:

#define IS_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 512 )

and for retina iPad's do:

#define IS_RETINA_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 1024 )

This should differentiate the two types of screens and bypass the need to pinpoint the exact model for scale purposes. The alternate method would be to use auto-layout, however I have a better feeling of control without it.

I hope this helps with the second part of your question. Good luck :)

johnnelm9r
  • 201
  • 2
  • 9
  • Or you could use the Apple supplied way of doing this: `CGFloat screenScale = [[UIScreen mainScreen] scale];` Which returns "1.0" for non-retina, "2.0" for retina, and works on all iOS devices, not just iPad. And will be useful for whatever future devices come along. – ToolmakerSteve Dec 11 '15 at 18:30
4

You dont have to do anything different. It should automatically work as mentioned by apple. The resolution is still the same as iPad.

iDev
  • 23,310
  • 7
  • 60
  • 85
4

iPad mini uses the same resolution as the non-retina iPads, iOS will use 1x graphics. Refer to this link... link

Sanjeev sharma
  • 169
  • 1
  • 6
3

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.

CalZone
  • 1,701
  • 1
  • 17
  • 29
0

To detect iPad Mini (any model) i'm using this code (tested on iOS 10.x):

- (BOOL)isIPadMini {
   return [[UIDevice currentDevice].name hasPrefix:@"iPad Mini"];
}
Slyv
  • 421
  • 3
  • 8