Every once in a while, we raise the minimum version of Android that we support in our development. While it does leave a small number of users on old versions of Android behind, we still think that the benefits of raising the minimum supported version far outweigh any negatives, especially when this move is well timed.
The last time we did it was back in August of 2017. Now we think it’s the right time to do it again. From now on, the lowest level of Android we’ll be supporting is Android 6 (Marshmallow).
Why raise minimum supported versions generally?
The main reason why development companies stop supporting older versions (of all sorts of software) is because continuing support requires extra work. Each version is different and has different issues that need handling. When many versions are supported, there are a lot more issues to resolve, so the development takes longer.
Obviously while there are still a significant number of users using the old version, this work is probably justified, but at some point the ROI for those extra work hours creeps into the negative and most other arguments in favour of ongoing support usually take a back seat to the financial consideration.
In fact, the work isn’t just greater in quantity, it’s usually more complicated to support older versions too. As the various tools that developers use receive updates and new features, they’re usually optimised to work best with the latest versions of other programs too. Over time it gets progressively harder and more complicated to support old versions of software as the tools needed to interact with it move on.
Why raise the minimum supported version of Android?
There are a couple of good business reasons for raising the level of version support on Android in particular. They are important to keep in mind in part because they directly address the bottom line of most businesses with an Android app.
First of all, Google Play’s search algorithms reward apps that give a good user experience and punish apps with a bad experience. Inevitably, their criteria for good/bad experience includes things like “effect on battery life”, which is optimised on newer devices, meaning apps with installs on newer devices will usually rank well, while apps used by large numbers of older devices will usually get downgraded in search rankings.
For the large majority of business models which include an app, (whether the app itself delivers the business’ core service or acts as an additional interface or a marketing tool) discoverability in Google Play is vital to success. This means that making apps which run only on the very latest devices is good for visibility, but this obviously needs to be balanced against the number of potential users available. For most business cases, the ideal version support point is a few versions behind the very latest release (at the time of writing, Android 9.0 is the latest Android version released).
There is also a reasonable case to be made for the idea that users with older devices are less inclined to spend money on apps and in-app purchases (crucial elements of many app based business models). This is a generalisation based largely on anecdotal evidence (including our own experience), but older devices are often owned by a) those not inclined to spend money on their phone and b) children who don’t have the means or permission to spend money on their phone. With this in mind, continuing to support older versions makes less and less financial sense.
Why raise minimum supported Android version to 6.0 now?
There are several good reasons why this is the right time to raise Android version support to 6.0 minimum. First of all, it’s worth noting that the number of Android users already running a version of Android from 6.0 up is already well over 70% (at time of writing this data is from October 2018, the number will already be higher).
Secondly, Android 6.0 behaves differently to its predecessors in a number of key areas. In particular this is true with regard to requesting permissions from users and fingerprint ID logic. Android 6 includes much simpler logic for handling fingerprints, speeding up development time in this area. Support for Android 5 would add additional time for inclusion of the old logic (which is itself less efficient). Android 6 also requires apps to request any permissions they need from the user (not part of Android 5), ongoing Android 5 support would require additional development to cover both cases.
Thirdly, Android 6 fixes a number of bugs present in 5. The SVG bug on Android 5 is the perfect example of a bug which has the potential to create a lot of additional work and/or a much worse user experience for users on that version of Android. Rather than allowing users to encounter a substandard app experience, with potential knock-on damage to your brand’s reputation, it’s better to leave Android 5 behind completely and develop for Android versions where user experience will be at an appropriately high level.
Individually, any one of these reasons probably wouldn’t be enough to make us change our minimum supported Android version, but taken together they represent both a large amount of additional work for developers and a selection of bad business outcomes for our clients. It seems clear to us that the time is right to change to 6.0 +.