Android And The Software Version Dilemma
You may or may not have heard of: Ice Cream Sandwich, Honeycomb, Gingerbread, Froyo, Eclare, Donut and Cupcake. These are all code names for different versions of the Android OS. The latest – version 4 – is Ice Cream Sandwich, commonly abbreviated to ICS. Currently I like to consider Android OS as having 4 variants and make some assumptions about each. Pre-Gingerbread (Old Phones), Gingerbread (Current Phones), Honeycomb (Tablets), ICS (Latest Phones or Tablets). Gingerbread is developed with Phones in mind, Honeycomb is developed with Tablets in mind. They are the same thing, but they are different.
Honeycomb is technically an update to Gingerbread but I like to think of them as both being on the same level. The software forking out after Froyo into 2 separate entities. Both these entities have been brought back together, using the best of both worlds, to create ICS. To get back to my original point: the Software Versions that users run makes a massive difference to how you program your Apps. Most of the time things are backwards compatible, Gingerbread Apps probably run on the later ICS but ICS Apps likely don’t work on the earlier Froyo. You would think that everyone would just update to ICS, right? Well unfortunately it’s not quite that easy.
Manufacturers have to port Android updates to their device then release an update and that obviously takes time and money. Those resources might be better spent on the next handset release or an update to a recently released handset or software. And there is the dilemma, some users are stuck with perfectly good working devices that are not capable of handling the latest update or the manufacturer just won’t ever release an update because it would be more profitable or cost-effective to work on something else.
So some people are on older versions of Android. In fact most people are on outdated versions of Android. Only 2.9% of all devices are running on version 4: Ice Cream Sandwich. Most users are on Gingerbread, 63.2% of devices run Android 2.3.3 – 2.3.7 to be exact, with an additional 0.5% running older versions of Gingerbread. Next most common is Froyo – Android versions 2.3 – 2.3.2 with 23.1% market share. As you can see in terms of numbers it’s far more efficient to work on Apps for older OS versions.
That limits what the Android API is capable of doing (each new update brings a range of new features and improvements). Essentially you are downgrading what you are capable of, but that is what is required to bring your App to the masses. Granted if you are making a big, processor hungry, graphically intense game then you will want to program for just the latest devices capable of running it (maybe on ICS) and so you can use the improvements from the later API but most of the time you will want your app to work on as many devices as possible to increase your potential market.
From a developers point of view this is quite a challenge. Any kind of wide spread development these days brings on fast paced improvements and new features. As a developer I would like to take advantage of the updates as quickly as possible to ease developmental issues and improve the user experience.
Well my wee rant is over but I would like to reach out to any Device Manufacturers and ask that if you could please update your Devices to run the highest possible version of Android it would really help out Developers and the Scene as a whole. Also if any users could submit a support ticket to their Device Manufacturer and request an update, the higher the demand for update the more chance of it becoming more common place and regular updates can only be a good thing, can’t it?