A novel approach that avoids learning Java and the Android SDK. Is it workable?

This is both an interesting and slightly irritating book. The idea is that instead of having to learn Java and the Android SDK you can simply create web pages that are customised to work well on the mobile platform. Of course if you already know HTML/CSS/Javascript then there isn't much extra to add, as creating pages for a mobile phone isn't that different to creating them for any browser.

Publicity for the 2nd edition of the book claims it has been updated for HTLM5 - which is misleading in that the original edition covered HTML5. The changes that have been made to the text add specific details at points in the book - either to bring it up to date or to make its instructions more comprehensive. There are also update screenshots from the Android emulator, which are allocated even more space in this edition, in some cases an entire page. Overall, however, this edition is slightly slimmer than its predecessor and one reason for this is that it no longer has an index. The detailed table of contents partly makes up for this omission.

Chapter 1 goes over the fairly obvious advantages and disadvantages of this approach. A native app can get at the special hardware in Android and it can be sold in the app store. A web app can't use the hardware, can't be sold in the app store but it is much easier to create. From here we have some chapters on styling a web page with the Webkit browser in mind. This is all useful and it even goes as far as showing how to use jQuery to add behaviors.

Essentially, however, the only really new information that you are being provided with are the specifics of the Webkit browser, but these are unfortunately buried under pages of examples. As the author says:

Theory is great but I'm a "show me, don't tell me" kinda guy.

If you like being shown how to do something rather than having the principles explained then this approach might suit but from my point of view it simply made it very difficult to see what was new in among all the familiar HTML/CSS and Javascript. Much of the really important information is introduced in boxes that just don't explain what is going on.

Chapter 4 deals with animation using jQTouch. This is a little better because if you haven't used jQTouch all of the material is new. Chapter 5 then goes on to introduce client side data storage using the standard HTML5 local storage and web SQL. Chapter 6 does the same for the HTML offline cache. All of this material is fairly standard and would apply to any web page - but then this is the point of using the web approach to creating an Android application.

Finally we reach the point at which the book changes its nature completely. Chapters 7 and 8 is all about using the PhoneGap framework to build native applications using HTML, CSS and Javascript. The idea is that PhoneGap, aka Apache Cordova, provides a sort of container in which you can run a web page in with additional Javascript APIs to get at the phone's hardware. Such web apps can be added to the app store and can get at the internal hardware.

This is more Android-specific than any of the previous material and the technical level suddenly shoots up. There is very little idea of how far you can go with PhoneGap and apart from making the phone buzz, using the accelerometer and using some geolocation facilities, you are left to figure the rest out for yourself. These last two chapters are now longer and have been taken more slowly and with more detail than in the original edition. Even so it is still too short and leave the reader wanting more.

If you like being taught how to do things by example and with minimal principles getting between you and doing something then this book will suit you. However I prefer to save the time and have presented what is new as distinct from what I should already know. You do need to know HTML, CSS and Javascript to get very far with this book and hence it isn't for the beginner. I didn't like this approach at all and found it a time waste when what I really wanted was for the differences from standard web page design to be pointed out.