Programming the Mobile Web (2nd Ed)

Author: Maximiliano Firtman
Publisher: O'Reilly, 2013
Pages: 774 
ISBN: 978-1449334970
Aimed at: Web developers
Rating: 2
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 2 attempts an explanation of what the mobile web is and it too goes over some old history WAP 1, WAP 2 (remember those?) and on to the mess that is current.  Chapter 3 extends the discussion to HTML5 and here we stray into the area of mobile apps with descriptions of the best known JavaScript mobile libraries. Of course none of this is practical in the sense that you don't see any HTML or JavaScript. Chapter 4 moves on to consider tools - Dreamweaver, Eclipse and so on and emulators and simulators for mobile devices. None of this information is any more than awareness raising and you could probably find as much if not more information with a web search.




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. 

The next few chapters take a look at practical markup with an emphasis on mobile features. Chapter 7 works its way through a small part of  HTML5 but in no particular order. It spends a lot of time on icons and the quirks and extra features provided by particular browsers. At the end of the chapter we reach an explanation of the viewport tag which is fairly central to the construction of any mobile page. Chapter 8 explains forms and Chapter 9 introduces the idea of feature detection and mentions the well known "Can I use" website that lists which features work on which browser. This particular website provides a lot of the information supplied by this book and a lot more. We also get a quick look at JavaScript libraries that can help with the problem but again this is a view from 10,000 feet - none of the detail is visible. Chapter 10 explains images and media in general and the only real "mobile" aspect covered is how to scale images to the current size of the screen. Chapter 11 covers CSS and starts with early versions and works up to CSS3 - this is where we learn, at last, about the all important media queries. 

At Chapter 12 the book moves into JavaScript and increasingly into the area of mobile apps. First we have a summary of JavaScript for people who have never heard of it. Next we are into APIs that are specifically useful to mobile apps - page visibility - and some that are generally useful - the DOM for example. Finally we have a list of useful JavaScript libraries with out enough information to make use of them or even to select which one to use. Chapter 13 is about offline apps, storage and networking and it really is firmly into web app territory. This presents minimal explanations of the JavaScript storage APIs and ends with an explanation of Ajax and websockets. Chapter 14 explains geolocation and maps, chapter 15 explains device interaction how to make a call, send an SMS and interact with other sensors. All of the examples are very short and in most cases non-existent. Some of the explanations are no more than "Camera - it exists and you can use it" - how it up to you to find out. 

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. 

This is a very thick book that is more likely to confuse rather than educate. It considers far too wide a range of possible platforms to be useful and it ends up being a dictionary of technologies rather than a guide to what you should do. If you are interested in creating mobile web pages there are small parts of this book that might help you. If you are interested in creating web apps then there are much better and more concise books on the subject. This is not really a practical book, but it does demand that you know something about JavaScript and HTML5. 

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. 



C++ Programming, 6th Ed (In Easy Steps)

Author: Mike McGrath
Publisher: In Easy Steps
Date: April 2022
Pages: 192
ISBN: 978-1840789713
Print: 1840789719
Kindle: B09V2T9SJD
Audience: Developers wanting to learn C++
Reviewer: Mike James
This is the 6th edition of a slim book on C++. Can you really learn C++ in easy steps?

Artificial Intelligence and Expert Systems (Mercury Learning)

Authors: I. Gupta & G. Nagpa
Publisher: Mercury Learning
Pages: 412
ISBN: 978-1683925071
Print: 1683925076
Kindle: B087785GZM
Audience: Technically able readers
Rating: 4
Reviewer: Mike James
Expert Systems, anyone?

More Reviews

Last Updated ( Saturday, 28 December 2013 )