Android and iOS are totally dominating the mobile market, leaving all competitors far behind. Though the supremacy of these operating systems is indisputable, they’re not ideal. Their main pitfall is diversification.
Devices running iOS and Android have different screen sizes, operating system versions, and hardware. Due to this, your application may look quite different on different devices. This also may be a cause of bugs on specific devices, and dealing with them requires additional time and effort from the designers’ and developers’ side.
In this article, we look at the diversification phenomenon and discuss how each type of platform fights it. Also, we’ve prepared some useful tips on how you can deal with diversification on Android and iOS.
Mobile device fragmentation refers to a phenomenon when some devices are running older versions of an operating system (OS), while other devices are running newer versions.
Each time Apple presents a new version of iOS or a new iPhone, they highlight the absence of fragmentation in their platform ecosystem. There’s a strong argument for this: to date, 85% of all iOS devices are currently running iOS 12 – the latest version.
There are several reasons for this:
Apple produces a comparatively limited number of devices and keeps the entire system under their control.
iOS updates are rolled out simultaneously to all of the latest devices.
iOS users tend to upgrade to new devices far more regularly than Android users.
But even a giant like Apple has an Achilles’ heel – fragmentation on iPhone 5S and iPhone SE devices. Even though rumors said that devices like the iPhone 6 and iPhone SE wouldn’t get the newest iOS 13, Apple has added them to the list of supported devices.
Let’s investigate this problem using the example of the iPhone 5S. Released in 2013, this device has an A7 processor, which was the first 64-bit processor released by Apple. Hence, it still supports iOS 12.3. From the developer’s point of view, iPhone 5S and iPhone SE still support the most recent SDK. The problems appear when it comes to UI design.
The release of the iPhone 5S was the point from which iPhone screens started to grow in size. Step by step, the aspect ratio has grown from 16:9 to 19.5:9. Thanks to this, designers are now able to put more elements on the screen and show more content. But there’s a dark side of this tendency – earlier iPhone models don’t display an app as newer ones do:
Elements on the iPhone SE occupy too much space, leaving less space for content.
When scaling on older iPhone models, elements become so small that it’s hard to tap on them or read text.
Adapting your UI design for older iPhone models may cost a lot of money and require a lot of effort for a designer and developer. It may take a third of the total time spent by a developer on markup to adapt the UI design for earlier models. It also means additional time for testing.
Due to this, a logical question arises – Is it really worth investing time on adapting your app for devices like the iPhone SE and iPhone 5S?
To make a wise decision, let’s investigate the popularity of the iPhone SE and iPhone 5S worldwide and in several countries. According to Device Atlas, these two devices grab only 3.6 percent of the overall market share (including Android devices in the total).
When we see the statistics by countries, the state of things is slightly different. For instance, in the US, the iPhone 5S grabs only 4.83 percent of iPhone traffic and 2.87 percent of overall mobile traffic. The iPhone SE is unable to reach the top ten.
So when developing an app for the US market under budget constraints, it’s reasonable to neglect adapting it for older iPhone models. You can do so after a successful release.
But in Europe, the popularity of these iPhone models is higher. For instance, in the United Kingdom, the iPhone SE is the fourth most popular iOS device, with 10.37 percent of iOS traffic share. The iPhone 5S comes in ninth, accounting for 3.5 percent of iOS traffic.
Surveys in other European countries show similar results. So if you’re targeting Europe, it’s vital to adapt your app for the iPhone SE/5S. Otherwise, a considerable part of your users will face a poor design.
Besides device popularity, you should also consider the audience of your app. If you target a high-income audience, the chances that they use devices like the iPhone SE or iPhone 5S is quite low, so adapting for these devices won’t pay off.
Android took 88 percent of the mobile market share globally in the second quarter of 2018, according to Statista. This market supremacy and the openness of the operating system lead to an unprecedented variety of devices running Android and manufacturer skins. This diversity is both an advantage and a disadvantage for developers and users.
As for the advantages, Android offers users a wide choice of screen sizes, prices, brands, looks, etc. From affordable Chinese smartphones for $100 to expensive flagships like the Samsung Galaxy S10 for around $900, there’s a broad range of Android devices to choose from. This means great opportunities for Android developers, who can build apps with the potential to reach a large percentage of the global population.
On the other hand, hardware manufacturers not only produce their own unique devices; they also build their own software on top of the Android system, which leads to even greater fragmentation issues that an Android developer has to deal with.
As of May 2019, only 10 percent of Android users were running the latest version of the operating system – Android 9.0 Pie. Google can do nothing about this sad statistic, since the root of the problem lies in many vendors.
When Google releases some new incremental update, only devices that run stock Android receive this update quickly. All other vendors have to adapt the release for their own software implementation, test it thoroughly, and only then release it. This can take a lot of time; sometimes users wait several months.
Google has made several attempts to fight this:
Google’s Material Design guidelines, which third parties are encouraged to follow, are designed to ensure that every app has a consistent layout, look, and feel. When vendors don’t follow those guidelines, the user experience is affected.
With Android 8.0 Oreo, Google introduced Project Treble, which intends to make implementing new Android versions easier and faster for vendors.
To better understand how it works, let’s consider how the Android operating system is designed.
There are five fundamental parts:
The application framework is used to implement the standard structure of an application. It’s used by app developers, while other parts of the Android architecture are system components that make everything work.
The Binder Inter-Process Communication (IPC) is a mechanism that enables high-level APIs to interact with Android system services and request access to a device’s hardware (camera, microphone, etc).
System services, in turn, are pieces of code running in the background. There are two groups of services: system (for instance, Activity Manager) and media (all services that play or record media).
The Hardware Abstraction Layer (HAL) is a programming layer that allows the operating system to interact with a hardware device at a general level rather than at a detailed hardware level. Its sole purpose is to conceal different hardware architectures from the operating system by providing a uniform system interface.
The Linux kernel is the part of the operating system that handles input/output and instructions from the application layer.
In the new Project Treble, Google introduced the HAL interface definition language (HIDL), which specifies the interface between the HAL and its users. The difference between the legacy Android architecture and the current HIDL-based architecture lies in the use of the vendor interface.
In Android 7.0 and earlier, there was no formal vendor interface. Vendors needed to rewrite large portions of Android code to deliver a newer version of Android to their devices.
In Android 8.0 and higher, a new formal vendor interface gives access to the hardware-specific parts of the operating system, so manufacturers can deliver new Android releases simply by updating the Android OS framework.
Project Treble seems promising. In the future, device owners may be able to get new Android versions much faster.
Still, your app has to support a great variety of screen sizes. The current Android SDK version supports about twenty resolutions. However, only three of them are used by more than 5% of device owners. This leads to apps looking different on different devices.
To fight screen fragmentation, you can follow the official Android guide on supporting different screen sizes and different screen densities. Today, modern development tools like Flutter are equipped with convenient functionality for dealing with fragmentation.
Fragmentation of hardware components
Unlike Apple, which uses the same processor architecture across one type of device, Android runs on several different processor architectures.
There are three main CPU architectures used in today’s Android phones:
ARM is the most common, as it’s optimized for battery consumption.
ARM64 is an evolution of the original ARM architecture that supports 64-bit processing for more powerful computing, and it’s quickly becoming the standard in newer devices.
X86, which is a bit more powerful than either type of ARM CPUs, is not quite as battery-friendly, and it’s the least common of the three.
During app development, it’s common practice to use native libraries to perform tasks like heavy computations and drawing. But doing so requires building a library for the specific type of processor, which affects the development time.
Also, some vendors – Xiaomi, Meizu, OnePlus, Samsung – have their own Android implementations. This might be good or it might be bad. But for mobile app developers, it’s inconvenient because it requires them to overcome system bugs and different behaviors that these systems might have.
iOS and Android each has its drawbacks, but both have distinct advantages too. iOS is unified and secure, but Android’s openness certainly appeals to many enthusiasts. Besides, Android has a larger global market share thanks to the number of affordable devices running this operating system.
The iOS and Android platforms will continue to aspire to be adaptable. We’re lucky to take advantage of this move toward adaptability that change our lives for the better.