Should Android developers abandon Gingerbread and only support Android 4.0+?
This article may contain personal views and opinion from the author.
The tide is turning. Android devices are continually being upgraded, and older handsets traded in for new. As such, Android 2.3 Gingerbread has finally fallen below 50% of the Android ecosystem; and, within the next few months, Android 2.x should also fall below 50%, while Android 4.0+ gains the majority of the ecosystem. So, we think it's fair to ask the question: should Android developers abandon Android 2.x and only support Android 4.0+?
Some may say that it's too early to be asking the question, but we don't agree. Android 2.x devices aren't just becoming a smaller and smaller subset of the Android ecosystem as a whole, but those who still have Android 2.x handsets at this point are either: A) coming up for an upgrade very soon, or B) users who purposefully chose an older device (likely because of cost), and may not even use apps as much as those with newer handsets. And, in the meantime, developers often have to spend a considerable amount of resources to build apps that support older handsets, even though it leads to buggier performance.
Developer considerations
Beyond that, there are also things that developers have to keep in mind as far as what it means to add support for Android 2.x. We have to remember that the Android 4.0 Ice Cream Sandwich update was huge for Android. Not only did it completely redesign the system, but it unified the phone and tablet SDK with the fragments system, which brought really good responsive design tools, and flat out made developing for Android a lot easier by adding a bunch of new libraries. The APIs are better, the development is easier, and the resulting apps perform more smoothly, and don't crash as often.
That's something that many people don't understand: the simple act of adding support for Android 2.x to your app will make your app less stable. You know all of those terrible stereotypes that people have about Android being laggy and crash prone? Those came to be because of what the system was before Android 4.0 came around, and the few issues that are still hanging around are due in part because of apps "needing" to support the old system.
So, after developers decide what the target audience is for their app, and decide if the extra work, and added instability, is worth what they'll be getting back from the user base. The idea here is that even if you're okay with the performance hit, and you can gain access to a 20% larger audience with only 5% more work, it seems like a no-brainer to support Android 2.x. But, we want to look into how much value that audience really holds for developers.
The Android 2.x user base
There is also the question of just how valuable that user base is. At this point in the life cycle of Android 2.x, some new budget phones still sell with Gingerbread installed, but most have an update to Ice Cream Sandwich available the first time the customer boots it up. That means the only people left on 2.x are either users waiting on upgrades that may never come (sorry T-Mobile G2x users), or new phone contracts (that can't be longer than about 6 months at the outside), or users who don't care enough to tap the "software update" notification that's sitting in their notification tray.
The first group has a way out soon enough, and the second group is far less likely to notice or care that there are apps in the Play Store that they can't use because their phones are incompatible. Even if a user with an Android 2.3 phone goes into the Play Store, it's not very likely that they are going to be spending money on apps for the phone they got for free on contract. If money is a concern for one, it will be a concern for the other.
The Android 4.x user base
DashClock is an app that only runs on the four newest Nexus devices right now, but in just a few weeks on the market, it has reached the 100,000-500,000 download tier in the Play Store. The app has become so popular that there are already dozens of extensions for the app, and more coming all the time. The same can be said for both new apps for Android with the name Carbon. One is a Twitter client and the other is the cloud backup solution by Koush, but both have quickly jumped up on the download charts, even though they are Android 4.0+ apps.
We asked around in various forums around the web and on Google+, and a lot of developers said that download numbers don't reflect the platform version spread as seen in the monthly numbers. Android 4.x user often make up 60-75% of app downloads even though the platform distribution numbers put 4.x at less than 45% of the market (based on the numbers released earlier this month).
And, of course, that's all just talking about the phone side of things. The Android tablet market is growing extremely fast, and has removed the word "dominant" from the iPad's lead. As few phones as there are that don't yet have Android 4.x, there are no worthwhile tablets that aren't running Ice Cream Sandwich at the very least. There may be an outside shot that a smartphone user on Gingerbread will be angry that your app doesn't support their device, but anyone who has a tablet running Android 2.x has no argument at all. If you willingly bought a tablet that is running the version of Android that came before the official tablet optimization, you shouldn't be any developer's target market.
Conclusion
We're not saying that all developers need to abandon Android 2.x. Casual game makers especially will find value in the waning market segment, and if you're making something as simple as a calculator app or to-do list, you may need all the available audience you can find. But, if you're looking to build an app that is more advanced, and has more functionality, it may be worth it to focus only on the Android 4.x ecosystem (even with Android 5.0 likely on the way).
The Android tablet market is growing extremely fast, and the entire segment is Android 4.x. The Android 2.x segment is shrinking by the day, and giving way to Android 4.x. The development tools are better for 4.x, development is easier, and the apps built for 4.x are more visually appealing, perform better, and are more stable.
And, there's the argument that we haven't mentioned yet: Developers could be helping to push Android updates by dropping support for older platforms. Think about it, if more developers adopt a 4.0 minimum policy, it may anger some users, but that anger could then be directed towards manufacturers/carriers that haven't been updating devices. Casual users may not notice or understand that they are missing out on system features because they don't get software updates, but if their favorite apps were suddenly incompatible, that could help push manufacturers to be better than they are.
special thanks to the members of the +Android Development, +NEXUS, and +Android Design communities on Google+ for their help!
Things that are NOT allowed: