Friday, November 26, 2010

Android Fragmentation: Google's Achilles Heels


Fragmentation has become a serious issue on Android and much has been written about it. What this essentially means is that there are currently too many Android devices out there with multiple hardware configurations running different versions of the Android OS. As a result, developers have to face many hardships while creating applications for the platform because they have to take too many parameters into consideration.

This is somewhat similar to the situation game developers have to face while making games for Windows. Except that, while making games, developers can at least give you the option of adjusting the graphics to suit your hardware capabilities, but the same cannot be done on mobile applications.

Developers are usually forced to create an application taking into consideration the lowest denominator in the hopes that if it works on this device it will work on every other device. However, at sometimes things don't work out too well on some handsets.

This issue was highlighted recently by the developer of the popular game Angry Birds, who recently released an Android version. Unlike the iPhone version they had before, which worked great no matter which iPhone or iPod touch you tried it on, the Android version could not work correctly on many Android devices. The developers brought this issue to the public attention on their blog and mentioned that they are now working on a "lite" version that would work well on phones with lesser hardware and also gave the list of handsets that the game does not currently work well with.

However, what I noticed in the comments of the blog post was that people were blaming the developer Rovio for the issues they faced.

It would have been understood if the same issue was faced on the iPhone version of the game, but on Android, we really don't think the developer is to blame. There are hundreds of different phones out there with various combination of hardware and software and there is no way the developers could have created an application that would run perfectly on all of them. I also saw comparisons being made with TweetDeck for Android, which according to the developers, was made by just two guys and apparently runs well on almost every Android device out there. I have a feeling people somehow seem to be missing the fact that TweetDeck is a far simpler software and hence there won't be major variance in performance on different hardware. Hence it is not a fair comparison.

This is the complete opposite of how it is to develop applications for iOS or even Windows Phone 7. In case of iOS, there are just a handful of devices out there with nearly identical hardware, all running the same software. In case of Windows Phone 7, developers already know what the minimum hardware requirements are for the phones. Microsoft has set the minimum hardware requirements quite high, and even if the developers code their applications to work perfectly with them, they know that the applications will not only work well with the current handsets but also future handsets. In case of Android, there is no minimum hardware restriction to keep in mind while developing applications. There is no fixed standard.

This affects the user experience of the application. An application on Android may not give the same user experience as its counterpart on iOS because the developer had no idea what device you would be using it on unlike the iOS developer.

The point I'm trying to make here is that it seems Google does not really care about either the users or the developers. By not having a strict hardware limitation Google has put not only the developer in a spot but also the user.

By having a strict hardware limitation Microsoft ensured that there will be no crappy Windows Phone 7 device, ever. By not doing the same, Google opened the floodgates to cheap, crappy Android phones, which can barely run the operating system. The developers cannot ignore these phones because they sell so well and the users cannot ignore them because they are so cheap.

What the users don't understand is that they are not getting the full experience on these devices. They are not getting the full Android experience; they are not getting the full smartphone experience. These phones are basically glorified feature phones, except that they are slower because feature phones don't come with a power hungry operating system. The developers cannot create good applications for them and even if they do they don't run properly, thus worsening the user experience further.

It seems to me that Google is just concerned about the operating system. They made a good OS and they take efforts to make sure it is regularly updated and has all the latest and greatest features. However, they rarely make an effort to look out for the people who are going to write applications for it and eventually buy phones running their devices. At times it seems they don't even care about manufacturers making hardware for their operating systems. Google seems to be updating their OS at lightning speed, which is a good thing, but it often leaves the hardware makers floundering to keep up. Also, hardware makers like Samsung who are trying to take Android beyond smartphones and into the tablet realm are getting little support from Google.

We are starting to think that Google is only concerned with making Android the Number 1 smartphone OS out there. And we also think that they need to slow down. While its good to keep churning out new and updated versions of their operating system every few months, they need to take a break and think about the people who make phones for their devices, who write applications for their devices and more importantly, those who buy their devices.

These are the people who matter the most and Google needs to take some steps to ensure that they get the full Android experience, the one they strive so hard to improve with every new version. Here's what we think they need to do:

  • Add support for tablets. Also, make tablets a separate section with a different set of applications designed with the larger display of the tablets in mind. Keep it separate from the smartphone apps.
  • Create a strict minimum hardware requirement and make sure everyone follows it. Have separate minimum hardware requirements for smartphones and tablets.
  • Limit the number of hardware variations. Currently there are six different resolutions that we have seen on Android devices. This should not be the case.
  • Make sure every new Android device is launched with only the latest version of the operating system and all current devices receive the latest updates at the same time and as soon as possible.


We understand that these things are against Google's open source philosophy. But if Google wants to go from just making software and leaving it out there for anyone to use it the way they like to, to someone who actually cares about those who use their software and takes effort to make sure they get the best possible experience, these changes are necessary.

Otherwise, Android will never have the same user experience of iOS or Windows Phone 7 devices, even if it continues to grow popular. In other words, it will be like Windows, only a lot worse.

No comments:

Post a Comment