I just wanted to reach out quickly and mention that our book Android in Practice (AIP) is finally done, it’s available, and most importantly, it’s good–or at least we like to think so! Let the archer speak for himself:
To get the obvious question out of the way: why another book, and what do we think makes this one different from the many others out there? There’s a strikingly simple answer to that: we believed that back when we started, there were very few books, if at all, that covered Android application development in enough depth, with enough inside knowledge, to satisfy those who (want to) develop Android apps for a living. We wanted to go way beyond the standard Hello World thing, and I believe we achieved that with AIP.
How? First of all, Charlie Collins (now working for MOVL, creators of Poker Fun), Michael Galpin (formerly responsible for the Android app at eBay, now working for Bump Technologies) and I (responsible for the Qype Android app, and large parts of the infrastructure behind it) do exactly that: we build Android apps for a living. We have been working with Android ever since it was in alpha status, when there hadn’t even been actual devices to run the platform. We fell in love with it, and we spent three years since then diving into the platform details, finding problems, solving problems, and where we could, share our findings through blog posts or StackOverflow. Since we were hearing the same questions over and over again, we thought it was about time to pour all this into a more handy format, so here it is: Android in Practice is our take on the developer’s cookbook, containing those recipes–or techniques as we like to call them–we think will help most in making delicious apps, including:
- A close look at the platform itself, why it’s Java, but why it actually isn’t, why it’s Linux, but why it actually isn’t, what it is comprised of from tools and middleware, to framework classes.
- Okay, we also have a Hello World part. There, I said it.
- An in-depth explanation of Android’s life-cycle and task model
- A comprehensive chapter about UI, where we explain how Android renders views, how to write themes and styles (based on a post from my blog here), how to implement state and 9-patch drawables, how to write scalable UIs, etc.
- We have an entire chapter on services, covering everything from running services in separate processes, communicating via IPC with other services, how to run process-local services and how to leverage Intents.
- We also found many people struggle with concurrency on Android, so we added a chapter that focuses entirely on threading, tasking, and asynchronous message dispatching. Yes, AsyncTask is covered here.
- Storing data is fundamental to many apps, so another chapter focuses entirely on that. From simple preference files to Preference activities to SQLite and ContentProviders, it’s all there.
- Many apps these days fetch their data not from the device, but from the cloud. That’s why we’ve added a chapter that focuses on networking, HTTP, parsing XML and JSON, and along the way also let you in on a few secrets about how to make your network code rock solid.
- No Android book could be complete without covering location. Hence, we’ve added a separate chapter focusing solely on best practices for writing location aware applications. The demo app for this chapter lets you find beer breweries near you. Selling argument??
- We know people love to use their smartphones to listen to music or watch videos, so multimedia was another big topic for us. In that chapter, we let you in on the details of streaming and recording music and videos in your apps, and how to let other applications retrieve that data from your apps.
- Gaming is becoming huge on Android, so we felt the book would not be complete without adding a chapter on 2D and 3D drawing. Here we cover OpenGL, and how to render arbitrary shapes and text to a canvas.
- If you think other books cover all those things as well, then we still have a few aces up our sleeves. Yes, we have a chapter on testing, and another one on build automation. We cover not only the basics like running unit and functional tests on a device, we also cover the thing only the cool kidz use, like Robotium and Robolectric, and yes, even the monkey! We also show you how to manage your builds with Maven and its Android plug-in, and to run your builds from a build server to satisfy all your automation needs.
- Last but not least, the tablet thing did not simply rush past us. We have an entire chapter on tablet development, and how to use the ActionBar, Fragments, and drag and drop.