Custom Search

Tuesday, January 12, 2010

There isn't an app for that

Or: Why the app store isn't up to the android market.

A number of people have pointed out that using an Android phone compares to using an iPhone much like using a Windows box compares to using a Mac. I've used both fairly extensively, as I bought an iPhone the first week they were available, and eventually upgraded to the 3G when it came out. I slowly grew more dissaponited by the iPhone, and sold it to buy a G1 about the time that iPhone OS 3.0 launched. I installed 3.0 as a favor for the buyer, but never played with it. I've since upgraded to a Nexus one. I agree with that assessment - the iPhone is a better overall experience.

But that's only half the story. Apple achieves that experience by having an incredibly tight rein on the available applications. They insure that the applications actually follow the UI guidelines, which exhibit Apple's typical high quality. The first problem is that they extend this to exclude things that might confuse the user by looking to much like an Apple phone call. Which means that you can only get the Apple experience via the App store. If you have more advanced needs or higher standards, you loose. The net result was that I wasn't happy with the iPhone unless it was jailbroken, and hence sold it to buy a platform without those problems.

Examples abound. The best known is probably Google Voice, which Apple supposedly rejected because it looked to much like the internal phone application. Before iPhone 3.0, users wanted MMS, push email from Exchange servers, and the ability to record video. Some were available if you jailbroke your phone - but not from the App store. They all showed up in the 3.0 OS. They were all available from the Market - if not shipped on your phone - before the iPhone had them.

Multitasking is still an "Apple apps only" thing - unless you jailbreak your iPhone. I'm not sure if other apps can now use the headset buttons - they couldn't prior to 3.0, and it was really annoying. Android apps have been doing both for quite a while now.

As a potential application developer, this cuts even deeper. For the iPhone, you pretty much have to develop in Objective-C. Nothing wrong with that per se, but what if it doesn't fit your project? Google publishes a collection of scripting engines which don't yet have full access to the Google UI APIs, but can be used to write background tasks and plugins for some applications. Further, a number of interesting modern languages built on top of the JVM - Clojure and Scala, for instance - have been ported to the Android Java platform. Should worst come to worst, it's possible to write Android apps in C. This makes for a more diverse development ecosystem, and happier developers.

The other issue that results from Apples tight control actually makes the iPhone experience - not just the applications - worse than Android, at least in this one small area. Apple has failed to provide a standardized way to move data to and from your phone. Net result - all the apps do it differently. Many have built-in web servers that you connect to from your desktop. Others use a web server elsewhere to exchange data. Some send email to get it out, with no way to update it. Some even have proprietary servers for their data.

Android, on the other hand, uses an SD card for data transport. Pretty much every app that uses real data can read it from and write it to the SD card. Which Android will let you mount via the standard USB cable to do data exchange. Apps in the Market provide bluetooth file exchange if that's to cumbersome. While this is generally not as nice as any single iPhone application, it's better th an the conglomeration that you get from an assortment of applications.

Bottom line - Apples tight control means the overall iPhone experience is better than Android, much like the Mac is better than Windows. But that same tight control means that for any given application, the experience for that application may be better than any competition available from the App store, just as the huge number of applications available for Windows improves the possibility that the best one available is available on Windows. Except for apps that need to share data with a desktop, where Apples tight control has left you hosed.