Wednesday, October 28, 2009

Building Droids

These days my professional reading tends to focus more on abstract, architectural books, rather than the nitty-gritty technical books that drive the industry.  I happily made an exception for "Android Wireless Application Development" by Shane Conder and Lauren Darcey.  I know and like the authors, and haven't gotten to see much of them since they moved to the East Coast.  In a lot of ways reading this book felt like catching up: it's wonderfully well-written, with a great voice (or maybe "voices"): warm, funny, bright, and helpful.  It's pretty rare to find a truly well-written technical book out there, so even if it wasn't for the subject matter, I'd be predisposed to like it.

Fortunately, the subject matter is excellent.  When Android was first announced several years ago, I had seriously mixed feelings.  On the one hand, I liked Google.  On the other hand, the endeavor seemed like a Quixotic quest.  Back to the first hand, it had a great architecture heads and shoulders above existing mobile development platforms.  But, to return to the second hand, as a professional developer I began crying on the inside at the thought of having yet ANOTHER operating system to support.

We still haven't heard the final word on Android, but the ongoing buzz seems cautiously optimistic.  The initial launch device, T-Mobile's G1, didn't displace the iPhone, but it gained a respectable following and has aged really well in this notoriously fickly marketplace.  Android has a lot of great behind-the-scenes fundamentals going for it, like open source and the $0 price point, that makes it really attractive to phone manufacturers, so we've seen increasing interest as people become comfortable with the idea that Android is here to stay.

The net result: Android phones are now announced for all major US wireless carriers, and have a respectable worldwide presence as well.  Their market share is still tiny compared to other platforms, but it is growing, and I expect that trend to continue.

Oddly, as Android has become more widespread, I've spent less and less time working with it.  The peak of my involvement preceded the launch of the G1 when I was working on several apps for the Android Developer Challenge.  Post-launch I supported the first several OS revisions, then got increasingly distracted by the mobile platforms that I'm paid to work on, and as a result I've only been peripherally aware of Android changes over the past half-year or so.

But no longer!  This book provides great reminders of the fundamentals that have been rusting away for me, like the application lifecycle and resource management.  It also covers APIs that didn't even exist when I was knee-deep in the platform, like Bluetooth and WiFi.  It's cool to read about something that I thought I knew, and still be surprised by what I find.

Having recently written a technical book of my own, I have to confess to some jealousy at the writing.  I've never been good at humor in writing, and have learned to stop trying.  This book shows how a sense of funny playfulness can really help pull along even the driest subject matter, keeping things interesting.

Oh, and the artwork!  I'm guessing that they did it on their own, and once again, I'm extremely impressed.  There's a lot of it, for one thing - sometimes it seems like every page has at least one diagram, image, or screenshot on it.  More importantly, the quality is uniformly high, particularly the art in the images.  There are wonderful touches, like the Droid logo seeming to squawk as he careens down a waterfall, illustrating the hazards of traditional software development methodologies in mobile development.

Oooh, that's another thing I need to specifically call out.  The first 4/5 or so of the book is a great Android primer, tutorial, and reference.  The last 1/5 or so is one of the best general-purpose introductions to the mobile software business that I've ever seen.  It's fantastic material, and should be required reading for every mobile development shop, even those doing no programming at all.  They quickly and efficiently describe how to set up crucial systems like a phone database; talk about the most important factors to analyze at the start of a project; how to assess your overall philosophy of business in mobile; and so on.  Shane and Lauren's years of experience really shines in this part: it's all the stuff that mobile software veterans have learned, and that people outside the industry don't even suspect.

I was pretty surprised to realize that this is actually the first technical book that the authors have written; still, both have written a variety of technical articles, blogs, and such, and so the book doesn't feel like a first effort at all.  It's calm and confident, the perfect companion to someone trying to learn Android from scratch, add Android to a quiver of existing wireless platforms, or just fill in the holes of their own knowledge. 

No comments:

Post a Comment