Author: Android Programming Unleashed
Audience: Java programmers
Reviewer: Mike James
One book to Unleash Android is optimistic. How far can one book take you?
Android programming is a messy business - all those screen resolutions, Android versions and different sets of tools. However, this book does a reasonable job of plotting a course through the middle of the mess. It makes use of the standard Eclipse SDK set up to develop programs and this is reasonable - but notice that Android now has a new SDK, Android Studio, that will most likely become the new standard IDE in the months to come.
The book is divided into four parts. The first is a very basic introduction to Android. You are expected to know how to program in Java and to have a reasonably sophisticated attitude towards programming. The level isn't that advanced, but it isn't complete beginners' material. After showing how to set up the IDE, the SDK, and a real Androiid device to use for testing, the book moves on to creating a simple application. In Chapter 2 it covers building a basic UI, including the app lifecycle.
Part II of the book is basically about the more advanced UI components. Chapter 3 is on the interaction of controls and containers; Chapter 4 is on resources and media and Chapter 5 is on widgets and debugging. This introduces the ListView but it doesn't really emphasize the MVC approach to building a UI, which is either good or bad depending on your point of view. It does simplify a complicated topic however. The final chapter of the section deals with dialogs and fragments. It starts off by introducing the now deprecated approach to dialogs before moving to fragments and the fragment approach to dialog. I think that it would have been better and simpler to just deal with fragments.
Part III is about Menus and storing data - and I'm not sure what the connections. Chapter 7 explains about menus including the ActionBar. Chapter 8 then moves on to database - SQLite. Why these topics belong together in a section of their own is a mystery - but it doesn't really matter.
The final part of the book is the biggest and it consists of a set of chapters on fairly isolated topics. Chapter 9 is on drawing and animation using canvas and onPaint. Chapter 10 is about displaying web pages and Google Maps. Unfortunately it deals with the old API and so you probably should mostly ignore it and look at the new documentation. Chapter 11 is about SMS and Email. Chapter 12 explains how to build a content provider. Chapter 13 is more or less the end of the book with a look at services.
The final chapter explains how to publish and app and this could probably be dropped from the book or at least shortened.
Overall this book is well written and the topics are reasonably well organized. The examples are all short and if you like real world examples this isn't the book for you. There are lots and lots of missing topics - particularly relating to the hardware e.g. the camera, accelerometer, magnetometer etc. but you can only expect so much in one book.
The first three parts are probably the best - once the book moves off into specialist topics it probably doesn't do them justice, but it does introduce you to the basics in Parts I through III very well.
If you can program in Java this will get you stated with Android apps and it will give you the basics of how to build a UI and do some simple graphics. From this start you can either read the documentation or buy a more advanced or more specific book.
In conclusion this is not the best book ever on Android but it's far from the worst as well. It probably suits the intermediate programmer best of all. This one is a worthwhile addition to a bookshelf, but not essential.