Author:Charlie Collins, Michael Galpin, Matthias Kaeppler
Aimed at: Intermediate programmers
Pros: No beginners stuff.
Cons: No beginners stuff
Reviewed by: Ian Elliot
There are a lot of Android books on the market, so can a book that claims to be about Android in practice add anything useful?
This really isn't a "Hello World" book. It starts out with an in-depth look at the Android system and how it differs from standard Java. Chapter 2 moves on to look at the fundamentals of an Android app. There is no beginners introduction to the subject and the first example is a fairly big one.
A novelty of the book is that there are QR codes that you can use to download the examples printed where relevant. I'm not sure how useful this really is, but there are no downsides to it - just ignore it if you don't want to get your Android phone out to make use of it.
Chapter 3 brings this part of the book to a close with a look at the life-cycle and state problem. At the end of this section you will know a lot of theory about Android and have an overview of the system but without much in depth practice. If you are a beginner then you probably couldn't make a start on your own app.
Part 2 of the book is called Real World Recipes. This is a collection of how to do standard things. There is a chapter on the UI, services, threads, local storage, sharing data, web services, location, multimedia, 2D and 3D drawing. Each of the sections has at least a simple introductory recipe followed up by some variations. This really is a catalog of techniques and it is the main part of the book. What this means it that if you aren't looking for this sort of recipe book you probably won't want this particular book.
Part 3 is about advanced or uncommon techniques. Chapter 13 is about unit testing, 14 is about build management, mostly Maven, and the final chapter is about Android tablets. Of course the book missed Android 4 or Ice Cream Sandwich but this doesn't matter as the ideas are general and there aren't many tablets running Android 4 at the moment.
Overall this is a good book. It is well written and nearly always clear with reasonably good examples. It isn't exactly a cookbook, but it does work best when you have a specific question to answer. However, it also has enough general discussion for you to gain a general understanding of an area.
What the book is not good at is being an introduction for the beginner. It doesn't tell you about Java, although it does point out different idioms that are useful in Android development. As it doesn't claim to be for beginners, this isn't a problem. You do, however, need to be mature enough a programmer to cope with this level of presentation and have already produced at least a simple "hello world" Android program and become familiar with the development tools before starting in on this book. As long as you do this then this is an easy book to recommend.