An Android Developer's Top 10 Gripes, Page 2
6. Java—Thanks, But I'll Take It from Here
The Java language, a very powerful tool, is on this list for two reasons: It's big, and it can be very hard to optimize. As a programmer, it makes me feel like I'm getting a very slow lobotomy. While it might speed time to market by freeing us from chasing down heap corruptions and memory leaks (two of my least favorite tasks), it can make it nearly impossible to, say, write an anti-aliased font library that renders in a reasonable amount of time. Sure, a developer can write custom libraries in C with their NDK, but now we're debugging two languages instead of one.
This is a technical writer's third-worst grammatical nightmare. An Intent in Android is the class used to communicate between Activities, Services, or Content Providers. Intent is a noun that commonly also works as an adjective, but never, ever, should it be plural (And "for all intents and purposes" doesn't count. It's pretty much a colloquialism). This has led to some very awkward conversations with my copy editors in the past year or two. Every time I use Intents in a sentence (say, right now for example), I'm left feeling like my elementary school grammar teacher is doing summersaults in her grave (Although, to be fair, she probably does the same thing every time I misuse a comma).
8. Platform Fragmentation
It's not just a buzzword, it's a real problem. Quite possibly it's the problem that could sink the Android platform as a whole. While Android's design might be geared towards the hobbyist developer, having to buy 50 handsets and validate your mobile app on all of them is real ordeal for the pros. As more devices with more screen sizes arrive on the market, maintaining an application is going to be a more and more exhausting process. This process won't be made any easier as Google's already loose grasp on the platform as a whole continues to loosen.
Worse, there really aren't any easy solutions for Google to implement. As Android becomes more popular, each OEM will manufacture devices with their own quirks, bugs, and oddities. Which, unless Google counters with a liberal dose of the forbidden 'Evil' word, is going to make this platform impossible to fully support for all but the most dedicated hobbyist or well paid professional.
9. A General Lack of 'Evilness'
Sure, Google is "open;" they publish all their source code. (Except the bits that power the giant money press hidden somewhere in their Mountain View office.) OEMs may have to clear a compliance hurdle in order to get Maps, Store, and Gmail apps, but either the hurdle isn't high enough or Google isn't very good at keeping OEMs from going under it. This lack of an iron grip (which both Apple and Verizon have effectively, if obnoxiously, employed on mobile developers) is exactly what is leading to the current and future fragmentation of the platform. Who knows, perhaps NSTL will swoop in to the rescue and start regulating app developers. (Anyone who's developed for BREW will know no greater fear than hearing those four letters.)
Google, with luck, will learn when it's good to be evil and when it isn't... but there's always that pesky slippery slope.
10. Hardware, Hardware, Hardware
The current crop of Android hardware, for lack of a better word, sucks. It's come a long way since the G1, but it's nowhere near the iPhone. Further, handset OEMs seem to be chasing the iPhone rather than making their own design decisions. The Droid was a step in the right direction, and the Nexus One looks to be another big step towards real hardware viability. Frankly, I'm tired of my smug iPhone developer friends lording their platform over mine. Further, I'm tired of them being right.
That's my list. I've checked it twice. After all's said and done, I really must admit that Android, despite its relatively few flaws, is one of my favorite platforms to work with. Quite honestly, if my complaint about how the word 'Intent' makes for awkward grammatical constructions ranks in the top 10, I'd say the Android platform is doing pretty well for itself.
Oh, and you can turn off your emo music now.
About the Author
|Chris Haseman is an independent software engineer specializing in wireless development. He can be found riding his bike between coffee shops in San Francisco. He's the author of the book Android Essentials (published by Apress). In his spare time, he's a resident DJ at xtcradio.com and a martial arts instructor.|