Are you Ready for iOS 12?

Development and design considerations for Apple’s new operating system

By Chloe Horgan, Bryan Norden, Michael Cengarle, and Nate Udren

*Update: The official release of iOS 12 is September 17, 2018.

After any significant update to software or hardware, it’s important to consider how the changes will affect the user experience. It’s not only a best practice to reconsider and update product strategy, design, and development, but it’s also a business imperative. It took just 7 weeks for 50% of users to upgrade from iOS 10 to iOS 11. Plus, iOS users adopt new releases at a much faster rate compared to Android users. iOS product teams: Time is not on your side.

It took just 7 weeks for 50% of users to upgrade from iOS 10 to iOS 11.

Following Apple’s iOS 11 and iPhone X release, we compiled a list of design and development considerations to guide app revamps and rebuilds. And with the recent release of iOS 12 at Apple’s Worldwide Developers Conference, here are a few considerations for updating or building your app for iOS 12.

There were some major hardware updates with the release of the iPhone X and iOS 11 — rounded corners, edge-to-edge 5.8-inch display, status bar with a split layout and different height — which had a significant impact on development and design. Whereas iOS 12 is all about improved and optimized performance. The operating system is generally much faster, more responsive, and works well across a wide selection of devices — old and new!

Apple also introduced new and revamped tooling (Xcode, Instruments, testing improvements, etc.) to help developers optimize their app’s performance. Each of these updates ultimately encourage a focus on performance.


As part of a slew of upgrades and new additions, Apple revamped the privacy and security on iOS 12. Developers and designers should ask themselves how the added privacy and security will change how they develop and design for iOS. For some apps that require additional security (2-factor authentication), developers and designers should prioritize usability and create a notification (or another mode of informing the user) of this requirement.


Siri gets a new feature called Shortcuts. With Shortcuts, users can add actions and customize Siri commands based on their own behaviours and activities. A single Shortcut can be multi-step and multi-app.


For developers, this means that you will be able to build and integrate various actions of your app into Siri through a Siri Shortcuts API. By defining a custom intent, developers will be able to build specific actions into an app that Siri will then be able to recognize. This will make it easier for users to access Siri in conjunction with an app. Plus, by using an Intent App extension, Shortcuts can run in the background.


Apple is releasing a portrait segmentation API that can separate layers in a photo. Developers will be able to build apps that easily separate foreground and background images, creating unique photo effects. Third-party developers will be able to use the separation data in their own apps too.


In addition to 3rd party navigation app support (Waze, Google Maps), Albert Wan of Apple’s iOS Car Experience team mentioned four key areas of improvement in CarPlay: overall performance, faster startup sequence, smoother animation, and better app communication. When building for CarPlay, developers should also consider workarounds for common scenarios, such as a passcode-locked iPhone that is connected to CarPlay and varying network/service signals.

CarPlay now has a framework that allows developers to build apps with a series of user interface-controlled, but customizable to a degree, templates. The builds will be translated into a user interface and the app will be supported on all CarPlay systems. Ultimately, the new framework will make it easier to bring great applications to CarPlay.


ARKit enables developers to create augmented reality apps for the iPhone and iPad by pulling on the environmental context and blending it with digital objects. Now, with ARKit 2.0, developers can do even more with such apps. ARKit 2.0 had added and improved functionality — face tracking, object rendering, 3D object detection, and developers can now create persistent experiences.


Apple also created a new file format with Pixar: USDZ. The new 3D file format is optimized to share and retain 3D graphic fidelity and animations. Plus, native USDZ support will be integrated into Adobe’s Creative Cloud so that AR experiences and apps can be created with relative ease.

Shared AR experiences are perhaps one of the coolest new features of ARKit 2.0. With ARWorldMap, developers can create a shared frame of reference by sending archived objects to nearby iOS devices. Assuming they’re tracking the same World Map, multiple users can share and experience the same 3D content by building with the USDZ format. For more information on creating a multi-user AR experience, check out Apple’s developer documentation.


When testing for iOS 12, ensure that the product works wells on both iOS 12 and with older operating systems. It will seem obvious, but make sure you know which devices can support iOS 12’s new features (FaceID, TouchID, AR, etc.) and use those for testing. Then, test the new iOS 12 features on devices that cannot support the new functionality to ensure the right error messages are presented.


Aside from the above and usual testing recommendations that come with any new OS, Xcode 10 and iOS 12 bring major performance improvements to testing. Xcode 10 will run tests in parallel, which will help shave off magnitudes of testing time. However, this feature needs to be enabled under the test section of the project scheme. By doing this, Xcode will create a simulator for you to run your app, and will then clone the app to as many simulators as your system can build — this is based on your computer’s available memory, the iMac Pros and MacBook Pros will benefit from this the most. By doing this, your tests will run much faster. Although, the key for it to work most efficiently is to have the tests broken up into as many classes as possible — this is because Xcode splits up tests for each simulator.

Xcode 10 can also run tests in a random order, which will highlight any dependency issues in your tests. Apple recommends enabling both of these options when running UI/Unit testing.


About the author

Bryan, Michael, Nate, and Chloe are all Agile iOS Software Engineers at TribalScale, representing both the OC and Toronto teams.

Join our fast growing team and connect with us on Twitter, LinkedIn & Facebook! Learn more about us on our website.

Visit Us on Medium

You might also be interested in…