Back when the Android SDK was first released, I thought i’d check it out. Turns out there was a google competition where you could win cash prizes for making android apps. “Simple!”, I thought. That was until I looked further at the SDK and found it to be far too incomplete and with little documentation.
Safe to say, I didn’t make an Android app.
Recently, the has been another Google competition so I thought i’d check out the SDK. “It’s bound to be far more mature and usable!”, I thought (not to mention it’s supposed to be the greatest platform in the world to develop for). Unfortunately, it was just as bad as it was the last time I looked at it.
Firstly, it’s based on Java, which isn’t really Java. Even so, it inherits all of Java’s problems. A weird and nonsensical class hierarchy for one. The overuse of abstraction for fairly simple API’s is another. Not to mention, the overload of XML files, which seem to permeate everything you do for no good reason.
In general i’d probably call it a rewrite of J2ME, only 10 times worse. Why worse? well at least with any decent J2ME SDK, you usually get some sort of usable GUI builder. Instead with Android, you get this mess…
Seriously, it’s the 21st century and i’m reduced to building a GUI using a spreadsheet and dragging a few nondescript labels around the screen in the vain attempt to build something which actually looks good. It’s so bad, even the tutorials recommend editing XML files rather than using it.
Earth to Android: people were making far better gui builders as early as 1989.
The distributed emulator application doesn’t exactly instil me with confidence either. Not only do I have to wait 5 minutes for it to boot up, it’s also horrifically slow for anything other than a simple “Hello World” application.
Seriously, if Android is supposed to be OS agnostic, why not make a simulated environment rather than a whole emulator? Would be a whole lot faster and usable if you ask me!
And of course, the real killer. The preferred IDE is…
If you asked a bunch of random strangers to build a bridge, you’d get a hideous construction which leads nowhere. In a similar vein, Eclipse is built by a complete bunch of strangers and ends up being an unusable mess. What’s worse is they’ve had 3 whole versions to sort it out, and rather than getting better it seems to be turning into an increasingly bloated mess.
I’ll give you an example. The code window is by default cramped in the middle of the window, it’s like looking through a keyhole to get at your code. Want to find the configuration settings? Good luck. You’ll have to dig through a whole myriad of menus just to change the font size.
Lets not forget the quirks. Want to scroll through a list using a mouse wheel? Well you’d better watch out for those pesky hint boxes which pop up and completely block focus.
But I digress; continuing with the Android SDK, another issue I have is with the actual documentation. Most of the time it follows a policy of listing what I can do, but not giving me any good examples of how to do it.
I’ll give you an example, looking at the ”3D with OpenGL” section:
“Writing a summary of how to actually write 3D applications using OpenGL is beyond the scope of this text and is left as an exercise for the reader.”
Want to write OpenGL applications? We’ll just vaguely describe how you could do it and just leave you to guess it all out on your own. Not that your app will be usable on all devices of course.
It also likes to mention technologies with little to no explanation of what they do. Taking the ”Audio and Video” section as an example, a reference is made to “Playing JET content”. What is “JET content”? I seriously have no idea.
Not to mention, there are a lack of comprehensive tutorials.
Take the Notepad tutorial for example, for every exercise you have to start from an archive of what the project should look like. It is impossible to follow the tutorial through without starting all over again with these archives. There is even an “Extra Credit” section. I’m not even going to comment on that one.
Really, it feels just like i’m copying and pasting code. i.e. not learning anything.
So safe to say, i’m not going to make an Android app anytime in the near future.
Now I realise why Google is offering cash prices for making android apps: The SDK is so horrible, you’ll need all the money to pay for the therapy you’ll need after you finish your app.