Author: Paul J. Deitel, Harvey M. Deitel, Abbey Deitel and Michael Morgano
Publisher: Prentice Hall, 2010
Aimed at: Java programmers
Pros: Plenty of annotated listings
Cons: Little more than annotated listings
Reviewed by: Harry Fairhead
Subtitled "an app-driven approach" this should provide a relatively intelligent approach to the problem of learning how to create apps.
If you know other books in the Deitel Developer Series you will probably expect something like a course textbook. Other Deitel books are off-putting in their complex organization, footnotes, asides and material that is obviously intended to be used as part of an instructor- led course. This book is a little different in that it is full color and some effort has been made to make the text look user-friendly.
Before the book gets to Chapter 1 we have a section that explains how to install Eclipse, the JDK, and the Android SDK. The version of Eclipse that is used is not the latest, but that is not huge problem as everything works in more or less the same way - and given the book is aimed at programmers the reader should be able to sort out any minor differences.
The problem is that after an introduction that assumes you know things, Chapter 1 seems to think that you know nothing at all. It introduces the history of Android, object-oriented ideas and a lot of very obvious information. Chapter 2 then goes into the Android market and business issues - perhaps these should be covered, but not so early in the book. After all, this is supposed to be aimed at programmers, not business managers.
Chapter 3 is where the app-oriented introduction begins and we start constructing a very simple app - basically just a splash screen. The instructions are very step-by-step and there are lots of screen dumps. There are also lots of small boxouts that hardly add much to the useful information - like you need hi-res images for a hi-res screen.
The action really starts to get interesting at Chapter 4 where the example is a tip calculator. This is more interesting because it has some code that does something. The first part of the explanation deals the user interface and this is a step-by-step outline of how it is constructed. The problem really starts when we reach the code. This lists the code in line number order and explains it in line number order. What this means is that you don't get an explanation that follows how the code was constructed. It does succeed in telling you how the code works in great detail but because of the forward and backward references you would have to read it a few times before you got it. This is hard work and very uninspiring.
Chapter 5 uses a Twitter search as the example; Chapter 6 is about a flag quiz game, Chapter 7 is a firing game; Chapter 8 is about animation; Chapter 9 a doodler using the sensors and multitouch, Chapter 10 an address book and Chapter 11 is a route tracker using maps. Chapter 12 is a slideshow using the media library, Chapter 13 improves on this and, finally, Chapter 14 is a weather app. There are some additional chapters on the web but they all take the same approach of providing a more or less finished program and explaining it line by line. This is not the way to show how the programmer thought about the construction of the program, nor is it a good way to explain the structure of the program.
The app-oriented approach means that you get to meet all of the Android subsystems, but you don'tget an in-depth exploration of any of them. You learn as much as is needed to implement the app that uses them.
If you like this approach then you will learn something about Android app creation, but not everything. At some point you will have to study the documentation and find out about each particular part of the framework.
I didn't like this book because it really amounts to little more than a set of annotated listings. The depth of the annotation is fairly comprehensive, but this isn't the quickest, or the best, way to learn how to create programs.