Author: Mark Murphy
Publisher: Apress, 2010
Aimed at: Existing Java programmers
Pros: Useful code snippets
Cons: Relentless humour and short on explanation
Reviewed by: Harry Fairhead
Given it's title you would expect this to be a beginner's book, but no. The most surprising thing is that it does everything from the command line. This is perhaps a reasonable way for an expert to work, but I don't really think that it is the way to introduce programming anything to a beginner unless there is a very good reason - and I can't see one. The author can' t even claim that the cost of an IDE is prohibitive because the Android SDK can be used with the free Eclipse environment - so why avoid it. After all any sane Android user is going to end up programming using Eclipse sooner of later so why not start as you are likely to go on?
The book assumes that you are a reasonably good Java programmer and wastes no time explaining the basic ideas of Java or using it. This is reasonable. What is not reasonable is the way that the examples are over long and under explained. After reading a chapter you will have a very vague idea of what things are all about and would benefit from an example - but in this case you will have to put in substantial time and effort to understand those provided. The author is clearly an expert on Android programming but isn't much of a communicator.
In an effort to make the book seem reader friendly many of the sections have titles that are intended to be humorous. This works for a few but quickly becomes tiresome as you try and work out what a section might be about from its cryptic heading.
The book has 39 chapters and the topics range from introductory user interface concerns to location-based services, using the phone and so on. Each chapter is short and to the point. If you expect much spoon feeding then perhaps they are too much to the point The pace also accelerates as the book progresses with the result that a lot of space is devoted to simple user interface components and less to the more interesting and difficult concerns. It would be better to find a more logical approach to the UI which groups controls together and treats then as special cases of a general idea.
The layout of the book also leaves a lot to be desired - it makes the text look more complicated than it actually is. Overall there are many things working against this book and as a result many readers are going to be disappointed - especially if they are make the mistake of thinking that the "Beginning" in the title implies that it is for the beginner - it isn't. To understand this book you need a wide and often deep background.
However if you have some experience of programing in Java, object-oriented ideas, know about threads, asynchronous programming, XML and have a rough idea of how a modern UI is put together, then you might like the book as a collection of code snippets with brief explanations.
At the end of the day it was the relentless humour and poor layout that put me off.