Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 internet speed test! ×

Book Review: Professional Mobile Web Development 26

Michael J. Ross writes "Years ago, technologists and consumers alike could only dream of surfing the Web using the (increasingly ubiquitous) mobile devices available, such as smartphones. But that is now commonplace, resulting from a convergence of several trends: the standardization of wireless access protocols, greater carrier coverage and bandwidth, the popularity of mobile apps, and more powerful mobile products — featuring embedded keyboards and pointing devices, greater memory, hardware miniaturization, and larger screens with better resolution. For the typical website nowadays, the primary impediment to the site working well on leading mobile devices is that the site was never intended for them in the first place. Web developers and other site builders using content management systems, can now learn how to build for mobile accessibility, with help from resources such as Professional Mobile Web Development with WordPress, Joomla! and Drupal — authored by James Pearce, who is quite active in the mobile development space." Read on for the rest of Michael's review.
Professional Mobile Web Development With WordPress, Joomla! and Drupal
author James Pearce
pages 552 pages
publisher Wrox
rating 8/10
reviewer Michael J. Ross
ISBN 978-0470889510
summary A guide to building mobile-ready websites using the leading CMSs
This book was published by Wrox, on 12 April 2011, under the ISBN 978-0470889510. It is a substantial volume, at 552 pages, which are organized into five parts. The bulk of the information is presented in the second and third parts. The former covers mobile development considerations independent of any particular content management system (CMS). It is in the third part that the author shows how to apply these techniques to websites and web apps created using the three leading CMSs — WordPress, Drupal, and Joomla. Most of the example code shown in the book, from a dozen chapters, can be downloaded from the book's web page. Unfortunately, the Zip file contains even more Zip files, which is rather annoying. The book's web page offers the table of contents (both the high-level and detailed ones), a brief author bio, the book's index, and a sample chapter (the first one). The book's introduction states that the web page has a link to errata, but there does not appear to be any such link. (Even if there are no errata reported, the link should have still been added, or at least an explanation as to its absence.)

The first part of this book, "The World of the Mobile Web," begins with an introduction to the mobile Web (which originated just a couple years after the birth of the Web itself), and discusses at a high level the similarities and differences between website development for the desktop versus mobile devices. The author then provides an overview of mobile technologies and networks, their technical limitations, recent developments therein, online information resources, and mobile browsers. Chapter 5, "The Mobile Toolbox," will probably be of more interest to web developers than the earlier chapters, because it surveys the mobile development techniques, server-side technologies, and development tools that are most often used for creating mobile-ready websites. For nondevelopers, the section that describes the key components of a CMS, can be valuable as an introduction to CMSs.

In the second part, "General Mobile Techniques," the author briefly discusses some of the critical options which a web developer must decide upon to structure a website so that it will be suitable for mobile viewers. These include navigation menu depth, breadth, grouping, and placement; typography, pagination, multimedia, and forms; and CSS and JavaScript. He also addresses a decision that likely will have even greater consequences for the long term maintenance costs of a new website, namely, the entry point(s) and structure(s) of the mobile and desktop versions of the site relative to one another. Chapter 7, which explores browser detection and methods of allowing the user to switch between mobile and desktop versions of a website, marks a shift in the book, where the reader is first exposed to any significant amount of code. Most of it is straightforward, but would be better without the use of the clunky heredoc method for outputting HTML from within a PHP script. Earlier, the author makes clear that device detection techniques (specifically, for screen dimensions) are not foolproof. Thus it is perplexing why his CSS code specifies pixel-based widths for images with a class "full" — presumably to fill the entire width of the mobile device's screen — because any pixel-based fixed width could turn out to be improper for the device upon which it is rendered. Wouldn't something like "100%" be a much safer choice?

In Chapters 8 through 10, the author presents user interface patterns seen in the major content management systems — forms, content lists, image galleries, and comments — and discusses how they can be applied to websites intended to support mobile devices. The only information that seems to be missing is the reason, if any, the author recommends using divs for grouping input fields, and not (more semantically correct) fieldsets. He also discusses some key design considerations, as they relate to mobile websites (including CSS media queries), and some HTML/CSS templates and libraries that can be used as starting points (especially valuable if you want to roll your own solution, and not use any CMS plug-in).

The third part of the book, "Major CMS Platforms," demonstrates how to develop mobile websites using the three most commonly-used CMSs — WordPress, Drupal, and Joomla — and how to add more capabilities beyond what is provided by the chosen plug-ins. For WordPress, the solutions examined are dotMobi WordPress Mobile Pack (for which the author appears to be the lead developer), WPtouch, Mobile Edition, MobilePress, and Automattic WordPress. For Drupal, the main weakness in the material is that the author posits the Mobile Plugin module as a solution for Drupal 6 and 7 (even discussing Drupal 7 permissions), but there is no version of it for Drupal 7 — not even an alpha release, and there is no indication there ever will be one. Also, in Chapter 14, the API calls do not work for Drupal 7. Yet the coverage of the topics is generally clear and engaging.

In light of the growing popularity and capabilities of JavaScript frameworks, it is no surprise that in the fourth part of the book, "Enhancing and Launching Your Site," the author explores alternatives to the methods he presented in earlier chapters, by using two such frameworks for mobilizing websites: jQuery Mobile and Sencha Touch. The example code is based upon a WordPress website, and leverages a switcher plug-in and other code discussed earlier in the book. The penultimate chapter covers various techniques for testing and debugging mobile websites: browser plugins, mobile emulators, and online testing services. The last chapter discusses issues with (the network carriers') transcoders, traffic analysis, and mobile search and monetization. The fifth and final part of the book, "References," contains a handy glossary, as well as two appendices that provide recommendations for further reading and developer resources specific to the three CMSs utilized in the book, and various mobile Web organizations and industry players.

Overall, the writing quality is a bit better than average for computer books, with detailed and helpful explanations. However, in several cases, the author uses words he doesn't seem to understand: "RIM's legacy browser remains very populous" (page 68; should read "popular"); "inadmissible flaw" (page 185; one can only guess at the intended use of this judicial word); the delightfully redundant "pre-prepared" (page 208); and "rallied against" (page 209; should read "railed against"). There are numerous simpler errata: "as [a] whole" (page xxvi), "appraised" (page xxvii; should read "apprised"), "been build" (page 3), "switchboard[s]" (4), "connected [to] the Internet" (11), "marking" (11; should read "marketing"), "it's [a] phone" (14), "these are dealt with these" (19), "phone's" (40; should read "phones'"), "try and catch" (45; should read "try to catch"); ". at" (46), "is [a] good start" (75), "most CMS[s]" (116), "some CMS[s]" (125), "a[n] XML" (140), "an pertinent" (166), "you are introduced you" (182), "to [an] extreme" (185), "on [a] par" (187), "part [of] the" (188), "wheedle out" (199; should read "weed out"), "scaling is down" (200; should read "it"), "comprised of" (220), "there comments" (227), "go [to] the" (230), "allow you [to] tweak" (247), "Index.php" (262), "in [a] box" (269), "[non]greedy" (280), "http:// yoursite" (305), "suit[e]s" (340), and at this point I stopped recording errata.

There seems to be no consistency in the formatting of URLs: the inclusion or exclusion of "http://" and root directory slashes was seemingly decided upon randomly (e.g., page 53). One may find the occasional comma where a period was called for (same page, third paragraph). Also, there is an excessive use of exclamation marks, particularly in the earlier chapters. Lastly, the author has an odd habit of phrasing statements of what material will be covered next, in a commanding form, e.g., "you turn your attention to examining" (page 97) instead of, say, "we turn our attention to examining." It's not important, but it's unsettling, and in a couple cases, rather baffling, e.g., "You should briefly discuss how to access HTTP headers in your code" (page 133). With whom should the reader discuss it? Yet the book's style is, for the most part, conversational and easy to digest.

Readers will find plenty of illustrative figures. Although all of them are black and white only, they are without exception top quality and quite attractive, including the many screenshots and product images. The only place a figure is sorely needed, is on page 261, to clarify the discussion about em-based padding. The chapters end with brief summaries, which are of no value and simply make the book a bit longer than it needs to be. Also adding unnecessarily to its heft is the repeated reminder that the example code can be downloaded from the Wrox website.

Aside from the aforementioned blemishes, this book does a fine job of introducing the reader to all aspects of developing CMS-based websites suitable for mobile devices.

Michael J. Ross is a freelance website developer and writer.

You can purchase Professional Mobile Web Development With WordPress, Joomla! and Drupal from Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.


This discussion has been archived. No new comments can be posted.

Book Review: Professional Mobile Web Development

Comments Filter:

You are always doing something marginal when the boss drops by your desk.