How Many Versions of OS Should My Mobile App Support?
The question of “Which Android and iOS versions should my app support?” is often raised by clients. In this article, we will discuss this question and we will attempt to present a reasonable answer.
As software engineers (as I am by nature), we are always looking to take advantage of the latest technologies and best architecture approaches. Each update of the mobile operating system introduces new technologies and updated APIs that give us the ability to create more stable, more functional and beautiful apps. However, new OS versions are a double-edged sword; with new features come inevitable challenges with backwards compatibility (some of the new classes and frameworks just aren’t available in older versions of OS).
By taking an approach of selecting the minimum OS version you can achieve a balance between going low enough to support as many devices as possible and not going too low that you don’t lose time and money. As in most things in life, you must remember that you will never satisfy everyone, it’s the real world of mobile applications.
And, the more you go back, the greater the development pain (and expense).
Google does not have control over all devices and manufacturers and so they cannot completely control the delivery of new updates. Most Android devices are manufactured by third-party companies (Samsung, LG, Huawei, Xiaomi etc.), each with its own policy on if and when devices are updated with new versions of the operating system. Some manufacturers simply don’t want to invest the effort in adjusting their customized Android OS for older devices.
Frequently there is a delay in OS updates by other companies because they implement their own user interface with exclusive features over the stock Android. This customizing and then subsequent testing for bugs is a time-consuming process. Thus, those devices are updated at a rather slow pace.
This section provides data about the relative number of devices running a given version of the Android platform.
Data collected during a 7-day period ending on April 16, 2018. Any versions with less than 0.1% distribution are not shown.
To get current information on what the ecosystem looks like for Android, check out Google’s dashboard.
Currently, I suggest supporting all Android versions from 5.0 (Lollipop) and up. Android KitKat 4.4 still has a market share of close to 10%, but your developers will probably tell you, that it does make sense to have Lollipop as the minimum version for a new project due to the technical improvements.
If it isn’t that easy, analyze and keep your target audience in mind and choose either of the two versions 4.4 (KitKat) or 5.0 (Lollipop) depending on your user base’s circumstances.
As you might already know, iOS is the operating system that runs on iPhones, iPads etc. and is produced by Apple.
Unlike Google, Apple has full control over all devices and ecosystems. Apple manufacturers all the devices that run iOS and chooses which devices will receive updates. Apple also maintains control of which devices are going to receive updates. They simply cut support for older devices.
iOS users generally upgrade faster than Android users. Unless your app has a special use case or user base, the general wisdom is to support the current major version of iOS and the previous one.
To make an educated decision regarding which iOS versions to support, you must understand Apple’s adoption rates and release cycles. Apple doesn’t make official announcements about iOS adoption statistics on a regular basis — you’ll need to keep your ear to the ground to get the most recent stats.
As measured by the App Store on May 31, 2018.
In order to do this, one of the first things you should do is check the current iOS adoption situation on this page. If you are starting a new project usually it’s enough to set a deployment target to the previous version of iOS so your app will support 2 latest versions. On the other hand, if your project already has quite a big audience, then you should probably think about adding support for the n-2 version of iOS (where n is the current version number). In absolute device numbers, this 3 – 5 % potentially could be thousands or even millions of new users. In this case, the efforts to implement the support are worth it.
If you have a reason and want to make it impossible for some devices to run your app you can limit the deployment target according to the beautiful table on this page. For example, to “block” iPhone5 and 5C, you can set the deployment target to iOS11.
In my experience, don’t stick with old versions based only on device statistics. Ignoring the reality of your user base will raise the costs and increase the time of developing applications. By removing support for older OS versions, we get a much simpler scenario, less code, and a cleaner architecture, we reduce the effort of maintenance which in turn will free time to implement new features.
Keep your target audience in mind and remember that you’ll never satisfy everyone.
Read Our Blog:- “Cross-Platform Mobile Engineering Tools“
Digicode provides end-to-end custom mobile application services with a wide range of features and exceptional results. To expedite your mobile project, you may leverage your mobile app development services. We have a deep understanding of our clients’ requirements.
Our area of expertise is an end-to-end mobile app development with best-in-class UI UX designs. In addition, we design mobile apps for iOS and Android across a variety of sectors using cutting-edge cross-platform technology frameworks like React Native, Flutter, and native languages.