Should Android developers abandon Gingerbread and only support Android 4.0+?
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.
as a developer you have to know your target audience, and your capabilities as far as how much time, energy, and resources it would take to build your app for various users. If it isn't going to be too much work to add support for Android 2.x and you'll gain access to a much bigger user base, then it makes perfect sense to do so. But, if your app is targeting power users, there is almost no reason to spend any time or energy building for Android 2.x.
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
by the end of 2013, Android 2.x could make up as little as 15% of the ecosystem. With that in mind, it seems far more reasonable for a developer to go with an Android 4.0+ policy when working on a new app. Depending on the scope of the app and the resources of the development team, it could easily take a few months to build an app; and, the longer it takes, the smaller the 2.x user base gets.
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
there's no reason why current budget phones can't handle the update to Ice Cream Sandwich at the least. And, with new flagship devices from Samsung, HTC, Sony, and Motorola expected in the next few months, the 4.x numbers are only going to climb faster. Beyond that, users on the higher end of the Android version spectrum are far more active users. Take a look at current phenomenon DashClock for example.
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.
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!