Can my app support Split View on the iPad Pro, but not the iPad Air 2? - ios

(Note that this question refers to the Split View multitasking introduced in iOS 9, not the Split View Controller.)
Our app's user interface is relatively restricted, and wouldn't work well with Split View on a regular-sized iPad - we can't shrink the screen easily. However, the new iPad Pro allows you to do Split View with two full-sized iPad apps on screen at once.
Is it possible for us to support Split View under the iPad Pro (where our app will still be big enough to show its whole UI), but not under the iPad Air 2 (where the view would be too cramped to show the whole UI)?

Related

UITabBar image incorrectly positioned on iPad when inside splitview + navcontroller

I have a hierarchy like so:
In storyboard, on iPhones (in all orientations), and when using iPad split screen with another app (see screenshot below with contacts side by side) this all works great.
However, when the iPad app has the full screen, my tab bar images are horizontal instead of vertical.
Anyone know of a way to force the tab bar to change the orientation of it's images so it's vertical? It's almost like the OS doesn't recognize that it should be using the compact traits for this mode on iPad.
Further details:
This is an iPad 9th Gen simulator on iOS 15.4. and is also present on a real iPad (5th gen iOS 15).
I am using SF Symbols for the image in the tab bar
I am using the technique described here so that I can have more fine grained control over whether any given view should be shown in the master nav/tab view or if it should show up in the detail view.
I am using .allVisible for the preferredDisplayMode, tried changing it to primary over with no luck.

Why does my display look different on iPhone simulator vs. iPad simulator?

I am working on a puzzle app on Xcode Version 11.0. My app displays as expected on my physical iPad mini and also on the iPhone simulators, but if I use an iPad simulator it appears to switch the orientation to Portrait mode and display my secondary screen as a popup on top of the secondary screen (see the images below).
I am using an "Action Segue" to get from my 1st screen to my 2nd screen. I have tried several different options (Show, Show Detail, Show Modally, Present As Popover). The result is slightly different, but all of them give the "Portrait popup" look. I am guessing that this is a newer feature, and I just need to set some flag to avoid it, but I don't have any guesses on what to look for. Could anyone offer some help?
iPhone 8 Simulator (this is what I want it to look like)
iPad Simulator (with undesired Portrait popup appearance)
Edit the segue to be Show Modally and also Fullscreen (instead of Automatic).

Is it possible to support iPhoneX for some view controllers in the app?

I have an application which developed before iPhone X release. My question is the following, can I add iPhoneX support for only newly created view controllers? I mean some view controllers will have iPhoneX friendly UI some not in the same app. For my new view controllers I'm using safe area but UI is broken for iPhoneX.
For the app I guess Apple will not allow partial support for iPhoneX.
Just wondering is it possible or not and how if answer is yes.
It's either all or none. If your app uses a Launch Screen storyboard and is built with a Base SDK of iOS 11 or if your app uses launch images and includes an iPhone X launch image then your whole app is presumed to work on an iPhone X. You will need to make sure all screens work correctly.
Think about what a terrible user experience it would be to use an app on an iPhone X where some views use the whole screen and some views only use part of the screen.

How can I implement the new iPad-like landscape mode on iPhone 6 plus

Apple has introduced a new iPad-like split view in landscape mode for iPhone plus, which help users take advantage of their larger screen.
I have designed an universal iOS app which uses UISplitViewController to show detail and master view in iPad, and uses UINavigationViewController to show the TableView in iPhone.
Now that we have iPhone plus, how can I implement the new iPad-like landscape view while I am using UINavigationViewController as the main structure in iPhone.
You might want to take a look at the "Building Adaptive Apps with UIKit" video on https://developer.apple.com/videos/wwdc/2014/
De basic idea is that the split view controller is used on iPhone and iPad. But when it detects that the device has a "Compact" horizontal size class it pushes the detailview on top of the master view, whereas with a "Regular" size class it shows the detailview next to the master view.

How/whether to make a universal storyboard in Xcode

When creating a storyboard file in Xcode, you must select if it is for iPhone or iPad. This implies one should always put iPhone and iPad UIs into separate storyboards. Is this true?
My app has multiple storyboards. While the Main.storyboard files largely differ between iPhone and iPad, other storyboards are nearly identical. The only difference might be segue being a push on iPhone vs popover on iPad, which can be handled programmatically. It seems awfully silly and redundant to make two storyboards.
So if making one "universal" storyboard, should iPhone or iPad be selected in Xcode? Does it matter?
As of Xcode 6, we can create a single unified storyboard for all the devices.
For more info - Documentation
iOS 8 makes dealing with screen size and orientation much more
versatile. It is easier than ever to create a single interface for
your app that works well on both iPad and iPhone, adjusting to
orientation changes and different screen sizes as needed. Design apps
with a common interface and then customize them for different size
classes. Adapt your user interface to the strengths of each form
factor. You no longer need to create a specific iPad storyboard;
instead target the appropriate size classes and tune your interface
for the best experience.
There are two types of size classes in iOS 8: regular and compact. A
regular size class denotes either a large amount of screen space, such
as on an iPad, or a commonly adopted paradigm that provides the
illusion of a large amount of screen space, such as scrolling on an
iPhone. Every device is defined by a size class, both vertically and
horizontally. iPad size classes shows the native size classes for the
iPad. With the amount of screen space available, the iPad has a
regular size class in the vertical and horizontal directions in both
portrait and landscape orientations.
Edit:
It only supports iOS 8(backward compatible applies only for iOS 7) and later.
You've got to create to separate storyboards for each kind of device. If you would delete the iPad storyboard, than your app would use the iPhone's one. You'll realize it when you'll see the 2x button at the bottom of the screen. Everything will be scaled to fit the larger screen - and the graphics would be really bad.
The only suitable workaround is to copy-paste everything from your iPhone Storyboard to iPad storyboard. Just follow the next steps:
Open iPhone.storyboard,
Press CMD+A,
Press CMD+C,
Switch to iPad.storyboard,
Press CMD+V,
You'll see, that all the screens, segues, properties and actions are transferred to your new storyboard. All that you have to do is to fix the frames of all your elements so that they'll suit new screen sizes.
And don't forget, that a good iPad application shouldn't be the same as the iPhone version. There are a lot of cool things which you can do with iPad!

Resources