Apple is known for its innovation, and to maintain their legacy, they introduced multitasking feature in their iOS 9 iPad. Since this feature is recently introduced by Apple, developers need to incorporate it while developing an app for latest iPad.

To provide multitasking feature, iOS introduced slide over, split view and Picture in Picture features to enhance user experience. Slide over, where secondary app covers 30% of the screen, is a feature that allows user to view apps on the right or left side of the screen (depending on the language version of the iOS). This way, a user has a choice to select a secondary app to operate and interact.

slideover_1_2x

Slide Over

(Image courtesy: Apple Developer)

keyboard-with-slide-over_2x

Slide Over with keyboard

(Image courtesy: Apple Developer)

In multitasking, if you tap on the screen of the secondary app to type, the keyboard would cover the entire screen allowing user an easy access to write. In the slip view, apps are displayed side-by-side allowing user to interact with both of them, simultaneously. In this feature, primary app owns status bar.

splitview-portrait_2x

Split View

(Image courtesy: Apple Developer)

While in the Picture in Picture option, the user can enjoy the video in a resizable and moveable window which is over the primary app.

picture-in-picture_2x

Picture-in-Picture

(Image courtesy: Apple Developer)

Developers, who are working on iOS 9 iPad apps, would need XCode 7. Also, they need to ensure that the app developed is either functional in iPad or can be used universally. One should also know that slide over will work only on iPad devices whereas split view would work in iPad Air 2 and upcoming iPad models. While developing an app with multitasking features you can keep all orientation in mind but remember it would not work on upside down feature.

Now, let’s have a look at the process and things you should keep in mind while developing an app for iOS 9 iPad.

1) Do not use UI Device Idiom & UI Interface Orientation for UI design. Instead use Sizing classes.

2) Remove the tick from ‘Required Full screen to support multitasking’.

3) To remove multitasking, add tick to ‘Required Full screen’.

4) Auto layout should not use constant height or width.

5) Auto layout should not use margin.

6) Auto layout should use percentage driven constraints for width or height.

7) Use maximum relative constraints and centre to parent view; but obviously as per the requirement.

8) In multitasking, Sizing classes play an important role. Whenever app screen size changes, sizing class value changes in trait collection and callback like –

willTransitionToTraitCollection (newCollection: UITraitCollection ….)

It is where we can check the trait collection values like horizontal or vertical size class and according to which we can deactivate old constraints and activate new constraints. This is recommended or accurate way to set auto layout constraints on the basis of sizing classes.

9) Only auto layout will not fulfill this multitasking functionality. Sizing classes should be there on which we can take decision about auto layout constraints.

10) Sizing classes value are displayed as given below:

Sizing_classes

11) Always set ‘Translates Auto resizing Mask Into Constraints’ equal to False.

12) Two new methods were added in iOS 8 that activate Constraints and deactivate Constraints. This could be very useful while changing constraints at runtime.

13) Means for iOS 7 & 8 – Use

[self.viewToChange addConstraints:self.newConstraints];

[self.viewToChange removeConstraints:self.newConstraints];

For iOS 8 only

[NSLayoutConstraint activateConstraints:self.newConstraints];

[NSLayoutConstraint deactivateConstraints:self.newConstraints];

Apple keeps pushing the envelope by coming up with more advanced features. We, developers, need to keep pace with the fast changing environment so that we can provide quality product to our clients. The above mentioned information would be handy to you if you’re working on or are planning to work on iOS 9 iPad apps.

Written by –
Mahesh Asabe
Tech Lead – Mobisoft Infotech