I’ve just finished reading through a copy of Android Wireless Application Development (Addison Wesley Developer’s Library, 2010 by Lauren Darcey & Shane Condor). Having read a few books on Android development over the last couple of years, it’s always interesting to see how a book tackles this big, constantly evolving platform. The book covers Android up to version 2.2 and includes access to the online Safari edition which hopefully means they can add a few post-print updates where necessary.
To be honest, if you’re just getting into Android development, it’s not so important to learn about the newest additions of the latest and greatest version, just to have a firm understanding of the core components which haven’t really changed all that much. Android 2 covers you for development on all current phones, and your apps can still support Android 3 devices if desired, but if you did want to target Honeycomb tablets, you may want to continue your learning by reading up on topics such as Fragments and Loaders.
The book sets out to be a fairly complete reference and pretty much runs the gamut. Starting off with an overview of Android, a look at the anatomy of Android apps and an understanding of the component parts that make up a project; it leads on to user interface design, a multitude of common APIs (far too many to list, but this includes subjects like data storage, networking/web, location and multimedia) and then runs through important design principals and more advanced topics such as how to be a good Android citizen and make your app feel fully native. The topic of deployment, signing and testing is covered in depth including selling your app. Finally the appendices collate a lot of information you’d otherwise need to search around for, such as various options and usage of the emulator, DDMS, ADB, Eclipse and a SQL Lite quick start guide.
Reference or cookbook?
Most tech books seem to lean toward either being a pretty dry reference, or a cookbook. By cookbook I’m talking about a collection of short practical examples of specific tasks, and I tend to prefer cookbook-style as I find it more enjoyable to read, with searchable online references filling in the minutiae and specific details when needed.
I think this book is a combination of the two styles. There are a lot of tables outlining the various options around certain functions and classes and also plenty of references. This satisfies the “developer’s library” label. But I would say a large part seems to be presented in the form of cookbook-like recipes, particularly in later chapters. For example “processing asynchronously” which teaches the reader the importance of running code on another thread to keep the UI from being blocked and the dreaded “Application not responding” alert.
Suitable for beginners?
It has a gentle enough introduction to suit most skill levels, but enough depth to provide new information for even the most seasoned Android programmers. I did say it felt more like a cookbook but it is structured well enough to be able to dip into a specific topic and quickly retrieve the example you need without much reading around the topic.
The book does touch on some pretty advanced topics such as OpenGL 3D graphics. If you’ve ever done any OpenGL programming you’ll know this stuff easily fills a book (or 3) itself. But it’s nice of them to include a springboard into this kind of development for those interested in real-time game programming.
It was nice to see some time had been put into writing a chapter on the history of mobile development. It helps those new to the field understand just how we got to where we are. Remember WAP? This chapter brought back a flurry of deeply buried memories of J2ME; we live in better times.
Two unexpected (but nice) additions were the chapters on “The Mobile Software Development Process” and “Best Practices in Bulletproof Mobile Applications” which discuss application requirements gathering, documentation practices, testing/QA and all kinds of experience-garnered gems.
All in all this is a bumper book at nearly 700 pages with a massive range of topics covered, a worthwhile addition to the bookshelf.