Author: Mark Murphy
Publisher: Apress, 2011
Aimed at: Java programmers new to Android
Pros: A good introduction to Android 2, 3 and 4
Cons: Some examples over-long and short on explanation
Reviewed by: Harry Fairhead
This is a new edition of Beginning Android 2 brought up to date for Android 3. The good news is that, while I didn't think the first edition was particularly good, it has improved a lot. Before I go on I need to say that, of course, any day now, Android 4 will be out. So if you are reading this weeks or months down the line, buy the most up-to-date version of this book but don't be put off buying it in its Android 3 form. The point is that the general ideas of Android programming haven't changed much since the early versions and Android 4 will simply bring together many of the features in Android 2 and 3.
The book starts off with a look at how to get started and by Chapter 3 we have a first project working. This new edition makes good use of the Eclipse IDE and has relegated the alternative command line approach to separate sections. While you need to know how to program in Java before you start on this book, it has a pace that is suitable for the beginner to Android. After six chapters the initial section, Core Concepts, draws to a close and if you have followed it in detail you will have the bare bones idea of the parts of an Android application.
Part II moves on to add to the basic project. Chapter 8 introduces the XML approach to specifying the UI. Then we look at the basic components of the UI, buttons, containers, keyboards, selection widgets, lists, embedding webkit, menus and popup menus. Then the book takes a change of direction and starts to look at the wider structure of an app from about Chapter 18. In a future edition I would suggest making this another section. We learn about the activity life cycle. coping with rotation, using threads, intent filters, activities, resources and styles.
Chapter 25, the last in this part, discusses dealing with different screen sizes - which is a way of sliding into Part III which is on Android 3 and how to code for tablets. This covers the parts of the UI that are specific to Honeycomb and how to use fragments, which are going to be central to Android 4.
Part IV is all about serious stuff like data stores, network services and more. Part V deals sepcifically with services and how to implement them. Part VI is a collection of things that don't fit anywhere else - permissions, location, maps, telephone calls, fonts and developer tools.
The penultimate part of the book deals with the creation of apps outside of the SDK. Chapter 45 deals with HTML5 and all its problems - which are solved in Chapter 46 by the use of PhoneGap. Chapter 47 looks at alternative ways of doing similar things including Mono for Android, JRuby and Ruboto and Flash. The final part is a two-chapter look at specific hardware and the future of Android. The only major topic missing from the book is native applications, but this is a beginner's book!
It is good to see that a book can really get better from one edition to the next, and we have to hope that it continues to evolve. It is a fairly big book and the pace is comfortably slow and informal. It has lost some, but not all, of its jokey titles and I think it would be better without them. Occasionally the examples are a little over-long and lack detailed explanation. Some trimming of the repetitive parts of the code would make it easier to understand - but some readers do prefer complete listings.
If you are a skilled developer, used to the sort of ideas that you encounter in creating mobile apps, you might find it too slow. As long as you already write Java then you should find this a good introduction to Android 2 and 3.