This is the latest in a series of articles explaining how iOS and Watch apps appear when run on hardware that didn’t exist when they were designed and built. Previous articles focused on the iPhone X, iPhone XS Max & XR, Series 4 Apple Watch, and 11" and 3rd generation 12.9" iPad Pro:
- How iPad Apps Adapt to the New 11" and 12.9" iPads Pro
- How iOS Apps Adapt to the iPhone XS Max and iPhone XR Screen Sizes
- How Apps Adapt to the Series 4 Apple Watch Screen Sizes
- How iOS Apps Adapt to the iPhone X Screen Size
On 10th September 2019, Apple announced a 7th generation iPad with a 10.2" screen. There are now five different iPad resolutions (in landscape):
9.7": 1024×768 points (2048×1536 pixels)
10.2": 1080×810 points (2160×1620 pixels)
10.5": 1112×834 points (2224×1668 pixels)
11.0": 1194×834 points (2388×1668 pixels)
12.9": 1366×1024 points (2732×2048 pixels)
The 10.2" iPad has the same pixel density as all the other pads and, therefore, a screen resolution that lies between the 9.7" and 10.5" iPad. All iPads except the 11" iPad Pro have a 4:3 aspect ratio (in landscape).
How does the new 10.2" iPad display apps? The situation is (much!) simpler than with the 11" and 3rd generation 12.9" iPad Pro which had to account for the Home Indicator and the different aspect ratio of the 11" iPad Pro. As always, what happens depends on which version of Xcode an app was built with and whether the app requires full-screen or not.
Xcode 10.3 / iOS 12.4 Builds
Apps that were built with Xcode 10.3 or earlier (i.e. targetting iOS 12.4 or earlier) are unaware of the existence of the new 10.2" iPad screen size.
iPad apps that do not support iPad multitasking (i.e. they have
UIRequiresFullScreen set to
YES in the
Info.plist) will appear at their original 9.7" iPad resolution scaled to fit the larger screen of the 10.2" iPad. This results in some slight blurring and scaling artefacts.
iPad apps which do support multitasking have effectively declared themselves as being able to adapt to different screen sizes and see the full screen size of the new 10.2" iPad. In terms of screen size, Xcode 10 built apps behave the same as Xcode 11 builds (see the next section for more screenshots).
Xcode 11.0 / iOS 13.0 Builds
When built with Xcode 11.0 (i.e. linked against iOS 13.0) or later, apps get access to the full screen size of the 10.2" iPad whether they require full-screen or not.
Split Screen Multitasking
The 10.2" iPad shows two compact-width apps side-by-side when using a 50:50 split.
In an uneven split the narrower app is 320 points (640 pixels) wide, the same as a 3.5" or 4" iPhone, in both landscape and portrait. The wider app occupies the remaining space (so is wider than on the 9.7" iPad but narrower than the 10.5" iPad). In landscape, the wider app is regular width; in portrait, it is compact width.
The 10.2" iPad shows a compact-width Slide Over app with a width of 320 points (640 pixels) in both landscape and portrait.
As descibed in my article How iPhone-only Apps Appear on iPad, iPhone-only apps run on iPad appear pixel perfect at the small zoom size but, since iOS 12, are scaled at the larger zoom size to fill the screen.
On the 10.2" iPad, the actual size on screen of an iPhone-only app is 750×1334 pixels or 1164×2072 pixels. The latter is a 1164 / 375 ≈ 3.11 scaling factor.
After the unusual behaviour of the 11" iPad and 3rd generation 12.9" iPads Pro running older apps, the 10.2" iPad behaves how you might expect when running apps built with Xcode 10: full-screen apps are scaled, multitasking-aware apps see the new screen size.
In WWDC 2019: 224 Modernizing Your UI for iOS 13, the presenter discusses backward compatibility and states:
In the past if we introduced new hardware with a new screen size, your apps were letterboxed. Well, we’re not going to be doing that anymore either. So, if you application is built against the iOS 13 SDK, then it will always be displayed at the native full-screen resolution of the screen.
We’ve already seen that multitasking apps are expected to adapt without needing to be rebuilt with the latest Xcode. This statement strongly implies that even full-screen apps built with Xcode 11 will be expected to run at future device screen resolutions, on both iPhone and iPad.
Apple have also stated that from April 2020, both iPhone and iPad app updates and new apps will need to be built with the iOS 13 SDK and support the iPhone Xs Max or later and the 3rd generation 12.9" iPad Pro.
Where Did I Find a 10.2" iPad Simulator?
The Xcode 11.1 GM Seed includes support for the 10.2" iPad. It’s somewhat confusingly called the “iPad (7th generation)” and isn’t selectable by default.
Add Additional Simulators... menu item at the bottom of the device list to open Xcode’s Simulators configuration window:
Click the plus button in the bottom left to add a new simulator and choose a device type of “iPad (7th generation)”:
It’s possible to provide a custom name for the simulator but, despite the lack of screen size in the name, I decided to use the default. Once created, you will then be able to run your apps on the 10.2" iPad simulator.
How Did I Run Xcode 10.3 / iOS 12.4 Apps on iOS 13.1 Simulators?
You might be wondering how I was able to capture screenshots from the Xcode 11.1 / iOS 13.1 simulator running apps built with Xcode 10.3. My earlier article iPad Navigation Bar and Toolbar Height Changes in iOS 12 explains the process in the Wait, What Did You Say? section.
Adaptivity iOS App
The screenshots in this article were taken from the iOS simulator running my Adaptivity iOS app. Adaptivity is a tool for developers and designers to visualise the different screen sizes, layout margins, readable content guides, safe area, bar heights and Dynamic Type sizes that a modern, adaptive, iOS app uses when running on different devices and iPad multitasking sizes. There are also screens to explore System Colors and, on iOS 13, System Images. More screenshots and information on all the features is available on my web site.
Other Articles That You Might Like
There is an iPhone-only version of Adaptivity to show How iPhone-only Apps Appear on iPad (it changed in iOS 12).
I have also written about External Display Support on iOS and Working with Multiple Versions of Xcode. You may not have realised that there were iPad Navigation Bar and Toolbar Height Changes in iOS 12. You must certainly have noticed the View Controller Presentation Changes in iOS 13.
If you found any of these articles helpful then please take a look at my apps in the iOS App Store to see if there’s anything that you’d like to download (especially the paid ones 😀). If you work with a lot of Xcode projects you might like my Mac Menu Bar utility XcLauncher.