📜 ⬆️ ⬇️

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

From the translator: this article has been gathering dust in my Pocket for quite some time (from 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 expert in English, so please write about all the rough spots - fix it.

Developing for Android, you have to deal with a terrible thing, starting with "f" - fragmentation.

This is something that does not disdain to remind in the technical blogs. This is a 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 the fragmented Android to the fragmented mobile OS market. Were it not for Android, we might have had to deal with the development for Sony OS, Samsung OS, HTC OS, etc., (I can't imagine that Apple would allow other companies to make iOS phones).
But still, fragmentation is a serious headache. If fragmentation could be minimized or avoided altogether, I would be happy.
')
I recently worked on the Wedding Party application as an Android developer. It was necessary to support Android 2.3+. To achieve a common UI, all versions had to use the ActionBarSherlock and HoloEverywhere libraries. We had to pore over the animations, because at 2.3 they often worked differently from 4.x.

The Wedding Party was required to work with a large number of images. There was no question of high-res images - they require a lot of resources, and several such images on one screen would force the application to crash on older devices.

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

image

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



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

After Google I / O, I put the idea of ​​“minSdkVersion = 14” to my team. After some hesitation, after analyzing 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 the Wedding Party, the number of installations for all Android versions has been growing. But in terms of the total share, the percentage of devices decreases by 2.x, and by 4.x, respectively, is growing quite rapidly. 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 out the code to support older devices. We grew bolder, especially in terms of animations, and without any questions asked, we switched to high-res images. Our Robotium tests became more consistent (with support for 2.x, we had to set a higher timeout, otherwise the tests would fail). Also decreased the number of devices for manual testing.

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

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

Stopping support for old devices, we had several assumptions. We thought the owners of old devices did not expect a high-quality application. Fortunately, there were not so many complaints about the inaccessibility of new functions 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 constantly decrease (in fact, this is the case - their number decreases by a few 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 is dead. More recently ( note lane.: Actually a long time :) ) Square Cash and Flyne did the same as we do.

Jake Wharton , who works with Android in Square, and is also known for his ActionBarSherlock library, says the main reason why Square Cash only supports Android 4.0 and higher was developer productivity. “Development 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. Was it possible to add support for 2.x, keeping the release date? Probably. Was it possible to squeeze in time, supporting only 4.x? Sure. Cash is a great app. Supporting older versions was real, but through greater effort, ”says Jake.

The target audience of the application was also considered. According to Jake, “we conducted a small survey of our user base and realized that people who are ready to install a product for sending money by email, used mainly Android 4.0+."
NPR will also only support 4.0 and higher in their future audio and video streaming application.

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

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

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

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

( note lane.: I remind you, the article for the end of 2013, so you can smile on )

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

By repeating Reto Meier’s thought, let's create the best possible application for each user.

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

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

image

As you can see, theoretically, 15% of users still can’t say goodbye to their old devices. But in fact, it’s mostly those who absolutely don’t need the best user experience from the phone. These are those who may not even know that applications can and should be updated via the Play Market. Therefore, when deciding on the minimum version of Android for a new application, you should think about whether it is necessary for these 15 percent?

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

Source: https://habr.com/ru/post/226141/


All Articles