Best Practices for Developing Universal iOS Apps
Written by Serban Tir and Alexandra Lovin
iOS developers face more challenges today than ever before in delivering a great user experience across all iOS devices, including the newly announced update to Apple TV.
Each device has its own set of characteristics and with the launch of iOS 9, developers have to think about displaying the app in the “split view” and “slide over” modes for iPad devices to support all orientation modes.
As more developers work towards making their iOS apps universal, many have questions about new Apple features such as size-classes and auto-layout.
Whether you are developing a universal app from scratch or migrating an existing iPhone app to additional iOS platforms, there are a few items to consider.
If you are building a universal app from scratch it’s recommended to start designing the user interface (UI) elements for the iPad first, which due to the higher resolution and increased computing power are usually more complex. The iPhone version is then obtained as a scaled down version.
If you are making an existing iPhone app universal, identify the UI elements and consider the following suggestions. While seemingly obvious advice, avoid duplicating code, as it will be difficult to maintain over time. Use base classes for views and controllers, and then derive an order to customize the behavior per device type.
Sometimes due to the large variety of resolutions and orientations the app must support, keeping the application at an acceptable size is a challenge. One suggestion to reduce the size of an application is to use fewer images as backgrounds, elements, etc., and to use more programmatic solutions such as background colors, gradients, or small images that scale properly.
Another suggestion to reduce the size of an application (if the target is iOS9) is to consider using app thinning features, which optimize the installation of assets by only installing the necessary assets depending on the device capabilities. In order to be able to use the app thinning features, images must be organized in asset catalogs and labeled by device type (iPhone, iPad, etc.).
In order to support applications across all iOS devices, Apple introduced size-classes and auto-layout. Size-classes allow developers to build apps that are supported across devices with various resolutions. Every view controller has two size classes – a horizontal and a vertical class.
Each class then has three possible values including compact, regular or any (depending on the device, orientation, etc.). Auto-layout is another helpful tool that allows developers to better implement the UI interface by describing the relationships between elements. This results in a versatile UI interface that easily responds to changes in screen size, orientation, etc.
While being tasked with making an app universal may sound overwhelming, Apple has created some tools to help make this endeavor easier.
These suggestions should also hopefully streamline and simplify the process for developers.
Best Practices for Developing Universal iOS Apps Published by TheiPhoneAppReview.com
By Serban Tir, Chief Technical Officer, and Alexandra Lovin, Senior Software Engineer, at Gemini Solutions
Serban Tir, CTO, Gemini Solutions
Serban graduated from the Faculty of Electronics and Telecommunications in Bucharest and has worked in the Romanian IT community since 1996. Serban’s rich experience includes roles as software developer, team leader, software architect, technical manager, and vice president of engineering for a U.S.-based startup company.
Serban is always highly attuned to new, disruptive technologies (for example, Serban was one of the first iOS developers in Romania).
In his spare time, Serban watches movies and listens to heavy metal music. He is a big sports fan as well.
Alexandra Lovin, Senior Software Engineer, Gemini Solutions
Alexandra has a keen interest in innovative mobile applications on various platforms, managing the full mobile development lifecycle. She has worked as a software engineer on both iOS and Android projects in numerous domains.
When not coding or keeping up with latest developments in the mobile industry, Alexandra enjoys an old fashioned book and a cup of tea.