Why is it time to support only Android 4.0 and higher?

Original author: Danny Roa
  • Transfer
From a translator: this article has been gathering dust in my Pocket for quite some time (since the end of 2013). More than six months have passed, so the opinion of the author is even more logical.
I was hoping that someone else would do the translation, but apparently I would have to.
I am not a super-cool connoisseur of English, so please write about all the roughnesses in PM - we’ll fix it.

When developing for Android, you have to deal with a terrible thing that starts with "f" - fragmentation.

This is something that is not disdain to recall in technical blogs. This is the word that scares some developers off the platform. This is what Apple likes to mention in its presentations in order to demonstrate the superiority of its OS.

Personally, I would prefer fragmented Android to a disparate mobile OS market. If it weren’t Android, we would probably have to deal with development for Sony OS, Samsung OS, HTC OS, etc. (I can’t imagine that Apple allowed others to make iOS phones).
But fragmentation is a serious headache. If fragmentation could be minimized or avoided altogether, I would be happy.

Doneavna, I worked on the Wedding Party app as an Android developer. It was necessary to support Android 2.3+. To achieve a common UI on all versions, I had to use the ActionBarSherlock and HoloEverywhere libraries. It was necessary to pore over animations, because on 2.3 they often worked differently than on 4.x.

The Wedding Party needed to work with a large number of images. High-res images were out of the question - they require a lot of resources, and several such images on one screen would make the application crash on older devices.

At Google I / O 2013, Jeff Gilfelt handed out stickers labeled “minSdkVersion =” 14 ”. They were well received by the community, and some took over the baton of distribution.


In the same vein, Reto Mayer said in a report: " Android Protips: Making Apps Work Like Magic ."

All this prompted me to think. The fact that we supported older versions of Android limited us. Before developing new features, we first had to check if this would work on ancient devices.

After Google I / O, I uploaded the idea of ​​“minSdkVersion = 14” to my team. After some hesitation, having analyzed our pace (and the Android version was expected no later than six months after the release on the iPhone), it was decided that using minSdkVersion = 14 makes sense.

Since the launch of Wedding Party, the number of installations on all versions of Android has been growing. But in terms of total share, the percentage of devices decreases by 2.x, and by 4.x, respectively, it grows quite quickly. Therefore, we made 2 versions of the code. We left the current one for 2.x devices, and for 4.x we made a new branch.

As a developer, it made my life easier.

We removed all third-party compatibility libraries and also threw away code to support older devices. We were bolder, especially in terms of animations, and without further questions switched to high-res images. Our Robotium tests became more consistent (with 2.x support, I had to set a higher timeout, otherwise the tests would fail). The number of devices for manual performance checks has also decreased.

In general, development went much faster. For a long time we had weekly releases, except for the period of development of the main functions.

Although we are developing a version for 4.x, 2.x users can still download the old version while Google Play supports Multiple APK support .

Discontinuing support for older devices, we had several assumptions. We thought the owners of older devices did not expect a high-quality application. Fortunately, there were not many complaints about the unavailability of new features on 2.x.

Since most of the Wedding Party users from the USA, where they can afford to buy new devices, we decided that the number of devices on Android 2.x will be constantly decreasing (in fact, this is happening - their number is decreasing by several percent every month).

We made the decision quite easily, knowing that other developers did the same. Popular applications such as Vine and the latest versions of Holo Sudoku 4.0+ are compatible, and no one has died from this. Recently (approx. trans .: actually a long time ago :) ) Square Cash and Flyne did the same as we did.

Jake Wharton , who works with Android in Square, and is also known for his ActionBarSherlock library., says the main reason Square Square only supports Android 4.0 and higher was developer productivity. “Productivity should come first. An application cannot be released until it is ready. Cash was developed primarily by one developer with little support from other Android devs. Could you add 2.x support while maintaining the release date? Probably. Was it possible to squeeze into timelines, supporting only 4.x? Undoubtedly. Cash is a great app. Maintaining older versions was real, but with more effort, ”says Jake.

The target audience of the application was also considered. According to Jake, “We did a little research on our user base and realized that people who were ready to install the product to send money via email used mostly Android 4.0+.”
NPR will also only support 4.0 and higher in their future audio streaming app. and video.

According to Mike Seifollahi , who works in NPR, "codec support in older versions of Android is implemented horribly. We want to deliver the best user experience to people, and good codec work is very important for this. On Android 2.x, you must use Software implementation of decoding is not the best way to spend device resources. ”
Android 4.0+ also demonstrates the maturity of the platform.

“Android 4.0 is a grass-is-greener ideal ( note: apparently, a reference to the proverb The grass is always greener on the other side ) and in fact it is the greenest thing you have seen. The API is logical and optimized. There are new APIs for convenient, dynamic, declarative development, which allows you to interact more effectively with the user, ”adds Jake.

Jeff Gilfelt shares these feelings. “API 14 is the time when Android has become serious. Design development has become one of the paramount tasks, and the default interface does not look ugly. This was an important milestone, and I hope this trend continues. In addition, support for multiple apk on Google Play means that you can continue to provide users of legacy devices with stable, past versions of the program. ”
In principle, there may be cases where it is not possible to maintain only 4+. For example, these are clients of various social web services (such as Twitter and Facebook), or applications targeted at the global market (in particular, India and China). Then support for older versions of Android may be required.

But if your application does not fall under these criteria, the minSdkVersion = "14" pluses significantly outweigh the negative aspects.

( approx. lane: I remind you, an article for the end of 2013, so you can smile further )

The holiday season is approaching, I think the share of Android 2.x will drop sharply. New devices will be bought and activated, most likely, at least on Android 4.0. It seems to me that by January 2014 devices on Android 2.x will almost disappear.

After repeating the thought of Reto Mayer, let's create the best possible application for each user.

Now open your AndroidManifest.xml and change minSdkVersion to 14!

And a conclusion from the translator:
Here is the latest information on the world market.


As you can see, theoretically 15% of users still can’t say goodbye to their old devices. But in fact, these are for the most part those who from the phone absolutely do not need the best user experience. These are those who may not even be aware that applications can and should be updated through the Play Market. Therefore, when deciding on the minimum version of Android for a new application, it is worth considering - is this 15 percent necessary?

Now is the middle of 2014, now it is all the more logical not to support the old (read: 2.x) OS versions. I use minSdkVersion 14 in my applications. And you?

Only registered users can participate in the survey. Please come in.

What is the minimum version of Android in your applications?

Also popular now: