The past couple of weeks I’ve been learning how to develop apps for Google’s Android platform. I’ve looked at it before but only at a high level, these past weeks I have actually been using it for real. So what do I think?
A future conquer?
Well its obvious that this platform has some serious potential. The promise of an embedded Linux platform that is tailored for the mobile, MID and even the net book markets gives a sense of the scale of what Android is trying to achieve. It can look very slick, it can do some really cool things but yet it is distinctly lacking in key areas.
So whats the problem?
There are three major area’s where Android falls behind the likes of the iPhone platform (discounting the terrible state of the Android Market but that’s something else entirely), they are documentation, a stable API, and development tools.
Documentation
Lets face it, the documentation for the Android SDK is poor to say the least. There is a shortage of example code (see my next point) and whist the official documentation looks pretty good on the surface, it too is missing key parts. Books quickly become out of date and the internet is full of potential android developers stumbling at every hurdle whist they try to figure out the way to achieve what they need.
One notable example here is the online books from CommonsWare. The online nature of these publications means that they can be constantly updated and CommonsWare do a great job of ensuring that their text is still relevant. Which leads me on to …
A stable API
The Android platform is very much in its infancy. Parts of the SDK change at a rate of knots and the poor developers have to keep pace if their apps are to work on the latest releases. This may be fine for a seasoned Android developer who will quickly come up to speed with the new changes, but the developer just starting out ends up falling into the trap of obsolete code.
There are a lot of code snippets, example programs and forums talking about how to use the Android SDK but so much of it is out of date. The rapidly changing SDK makes these once valuable resources a hurdle for the new developer, tripping them up until they realize that the way to do what they wanted has now changed.
Development tools
Now I’m not saying that XCode is the greatest development environment out there, it has its own problems, but for the developer just starting out, XCode becomes immensely valuable. Contrast this to the Eclipse integration that Android has. The editor is slow, the ‘interface builder’ (the bit you use to graphically layout screens) is pretty useless and the somewhat temperamental nature when compiling and running the app make it the bucking bronco of development environments. Some parts of the tool are just great, code completion, the vast amount of plugin’s you can use and auto insertion of dependencies make it something that you have to use but never really enjoy.
So whats the answer?
Being an open source developer, one never likes to complain about something without either fixing it ones self of suggesting a way of doing it. Well, this is a tough one.
Google have a tight hold on the official release of the Android platform so the rapid SDK changes aren’t going to go away. Eclipse has performance issues that I would have no idea how to fix so that leaves documentation, something I can change.
From now on there will be an Android section on this blog that will try to keep pace with the rapidly changing development side of Android whist providing some tutorials that the beginner will find helpful. So, stay tuned for more.