Author: Maximiliano Firtman
Publisher: O'Reilly, 2013
Aimed at: Web developers
Reviewer: Harry Fairhead
Developing for the mobile web - is it really so different that it needs a dedicated, and quite large, book on the subject?
This is a much expanded and reorganized second edition of a book I didn't really like. It was OK but it didn't provide the sort of information I was looking for. With the second edition many of the things that I found unsatisfactory have been fixed, but the emphasis is still on creating mobile web pages and not on the more interesting subject of extending the idea into mobile apps. In short, the book still takes the point of view of the web page creator rather than the programmer, even if it is moving more in the direction of the programmer.
The start is gentle enough - almost too gentle. Chapter 1 insists that you work you way through all of the recent history of the mobile device. At this point you might fear that the book is a pot boiler produced by an author who really doesn't know much and needs to pad the book out with relevant but fairly dispensable material. The new edition does include the more recent platforms, such as Firefox OS and Ubuntu and some of the Chinese platforms. The big problem with this introduction is that it might be interesting to some, but it doesn't really get you anywhere. If you are interested in creating web pages for consumption by a mobile device what matters is the browser and the screen size and that's about it.
Chapter 5 is a very waffley look at architecture and the introduction of the idea of responsive web design - i.e. make your page fit the screen. This is very much a discussion of what you could do and occasionally what it might be best to do but it certainly isn't a discussion of how to do it.
Chapter 6 is where I had big problems with the original book. It is where the book moves into a slightly more practical mode. It is about markup and standards. The problem is that there are so many and the author doesn't really help you sort out the important features from the more or less irrelevant. This is only going to be of interest if you plan to support every old or underpowered phone on the planet and in this case it isn't going to be enough to actually solve any of the problems you might have.
Chapter 16 explains native and installed web apps their pros and cons. It is just enough to make you aware that there are competing platforms - WinRT apps, Mozilla open web apps, Chrome apps and so on. Chapter 17 deals with content delivery, chapter 18 on debugging and performance and the final chapter is about distribution and the social web - SEO, Google mobile analytics and so on.
If you share the author's determination to make your web applications work on everything you might encounter, then you will find this book useful but you will have a tough time - just as tough a time as the author has in trying to make the book cover everything. In practice you would be well advised to take a step-by-step approach. Make it work on a standard HTML5 browser and then expand your market using either feature detection or alternative versions.
Unless you have some very specific requirements to be made aware of the potential complexities of the mobile web, I would still give this book a miss.