Android and the last 10%

Android has improved tremendously over the past year. In October 2011, we were shown Ice Cream Sandwich for the first time. ICS improved Android dramatically, throwing away the aging and clumsy UI in favor of a clean, new, fancy UI, with new design conventions and a new font.

Unfortunately, this seems to only be 90% there. And Google seems to keep missing that last 10%.

There have always been problems with Android, big and small. Things such as the ugly UI in the early days, or the fact that there are 3 poor ways to do any single task. Many of these have fallen away over the years, with the addition of new features, but there are some things that are still in there, despite issues, even patches, being opened and sitting in queues, ready for pulls, for years.

Keep in mind, this is an opinion piece, like most other things I write on this blog. I am always open to hearing how things have changed, or if I am wrong about something. I still love Android, and use it every day

OS Problems

Messages everywhere!

One of my earlier posts, whats wrong with gtalk pointed out this problem, and it still remains today. Using only Google apps, there are no fewer than 4 message services on my phone. Google Talk, Google Voice, Messaging (SMS), and Huddle/Messenger/Hangouts (Part of Google+). There should be only 1. Google should take the approach they have taken in other parts of the OS, and expose an API that allows developers to register custom message apps, that appear in one single “app”. That app should be called Messaging. Out of the box, it should have Google+ Messenger, SMS, and Google Talk all merged into one single approach. Basically, it should work like iMessage. On a conversation to someone we don't know anything about, and haven't filled in the full contacts info, it should send them a text message with headers specifying the protocols we support. If they support any of the same protocols, their phone should see that and let them respond via said protocols. We would get their message, in a single thread, and continue the conversation.

Uninstalling is still ugly

Go uninstall some random app you don't use from your Android phone. You'll get a popup asking if you want to uninstall, and when you click OK, you'll get a full-screen window saying its uninstalling. Why do you need this window? Why can't it just go up into the notification tray, like installs do? It makes no sense, and wastes a lot of time.

It can't do much out of the box

One area Apple and other smartphone OS manufacturers have been focusing on is included apps. Google doesn't have to do this to the same extent, due to the modular nature of Android, but it leaves a lot up to the user, which, for an average (read: non-geek) user, is a hindrance. Google should ship a tasks and reminders app, either built into calendar or stand-alone (or both, with an icon in the app drawer).

Other areas that this is most notable is things like the dreadful calculator app, which looks like something right out of Gingerbread. I recommend using Calculations, which is well worth the money. It does things that the included calculator didn't, but my old razr dumbphone did, like tip calculations and unit conversions.

The dialer still sucks

The dialer is possibly one of the most neglected parts of Android. Each version reskins it, but thats really all they do. Most third-party roms, including AOSP-based ones, add a T9-based auto-complete to the dialer, so you can type a contacts name and have them ready to dial. This is infinitely preferable to having to find the contact in People, and launch the call from there.

Implementation problems

Perhaps bigger than the OS problems are the implementation problems Google faces. These are possibly the biggest obstacles to true Android growth, yet they are also the hardest to solve.

Which Android do you want?!

This is by far the biggest hurdle to Android. Due to the fact that anyone can use Android (which I am not criticizing, I love the opensource nature of the platform), Android has splintered significantly. Each manufacturer, in an effort to “distinguish” their phones, have built what essentially amounts to three different versions of Android. You have touchwiz Android, sense Android, and stock Android. Guess which one is the rarest? Stock. This is completely backwards of how it should be.

Google got into this place because, back a few years ago when they were trying to make Android grow, they let the manufacturers create their own forks of the code. The first forks were simple re-skins, such as HTC Sense, but they grew from there, and gradually parts of the OS began to be replaced with custom code by manufacturers. The height of this hubris was when HTC replaced Android's process management in Sense 4, with what is considered by many to be an inferior approach for process killing.

Skinned Android is not inherently a bad thing, but the approaches that people have taken towards it are. The open-source rooting and romming community has taken a much saner approach, although it provides less total customization. In opensource roms, notably the CyanogenMod rom, a “theme chooser” is used. This allows people to make themes that restyle parts of the Android UI, without touching the underlying kernel and apps. The end result? A skin made for one rom usually works on another rom, and can even survive updates.

This is the best approach, because it allows the manufacturers to style their devices, while also allowing Google to manage updates for the devices. It solves app issues, and reduces the problem of fragmentation

Updates updates updates!

The other largest problem with Android is a doozy: most people aren't running the newest version. The number one version of Android at the time of this article's publication is 2.3 Gingerbread, a version that was released in Q4 2010. A 2 year old version of Android is the dominant one, and its still shipping on some new phones!

This problem stems from several sources, but again, the two largest are the carriers and the phone manufacturers. There is no incentive to update an old product, when they can just push a new product with a newer version of the OS. The custom forks of Android the manufacturers deploy are tremendously difficult to update to newer versions of Android, due to all the sloppy code changes in place.

I'm not sure how Google could solve this, but one way would be mandating that only the latest versions of Android, within a certain time window, could have access to Google apps. This is a nuclear approach, and there are surely more diplomatic options.

In conclusion

Android has come a tremendous way in the past year, and even over the past few weeks, problems have been falling away one by one. But there are still far too many for Android to be considered a “perfect” os, and probably always will be. Still, I have high hopes for what Key Lime Pie or whatever they decide to call the next version offers.