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.
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.)
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 |
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 amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
It's not Packt? (Score:3, Interesting)
Did they stop bribing the editors?
Here it comes (Score:1)
Re: (Score:3)
"Must have 3-4 years experience in CMS"
Re: (Score:1)
Review? (Score:3)
I missed the part where he reviewed the book and only found a summary of it.
Who would you recommend this book for? Does it hit its stated goal? Was it better used as a paperweight?
Reviews are inherently biased. That's their whole purpose. If I want to know what's in the book, I'll thumb through the table of contents.
Irony (Score:4, Funny)
Re: (Score:2)
please accept my +1 insightful pseudomod.
Re: (Score:2)
What review?
posted from my android phone.
Re: (Score:2)
posted from my android phone.
Point well taken. I've considered moving from my BlackBerry, but I desire to store and have available to me some informations that I prefer not get into the hands of others, and neither Apple nor Google has done anything to convince me it is safe to switch.
Re: (Score:2)
From the long list of grammatical errors pointed out by the reviewer, I would say it was posted because he couldn't elsewise go grammar natzi it.
8/10 (Score:2)
Shocking.
HTML (Score:5, Insightful)
However, as tends to happen, the insane compulsive designers came in and said they could not live in a world where they did not have 100% control of the look and feel of content. So hacks were made and kludges were put into allow these insane people to force their views on the innocent world. By the time a compromise was reached, in terms of cascading style sheets, the display independent ideal was long gone. Web pages were made to displayed on specific size screen with specific content. And we found ourselves in need of a book that differentiated the mobile device from the fixed device. What a joke.
Re:HTML (Score:4, Interesting)
Mod +10 Insightful.
Original HTML specs made building pages for multiple screen layouts with differing graphics capabilities a snap. It got broken when it was decided that the browser should be an application platform, and other folks decided they wanted what amounted to interactive PDFs.
Re: (Score:1)
Device independence (I say device because it's not always a "display") is real and it's here and usable right now. You're simply not using CSS correctly.
Re: (Score:2)
Your post was 100% accurate, but also very depressing.
I guess we're due to go through another era of device proliferation until, in 30 years, some genius kid comes up with the idea of a way to "mark up" plain text, allowing one to navigate documents using "hypertext."
Re: (Score:3)
What I like to point out is that one of the nicest home pages in the industry is at google.com. This page, of course, violates pretty much all the "design principles" of the industry. It's simple, to the point, and works everywhere.
Of course, there's nothing at all flashy (pun intended) there, so it's utterly unacceptable to the crowd of "designers" that have brought these problems on us.
Wrong title (Score:2, Informative)
If the book title is "Professional Mobile Web Development with Joomla, Wordpress and Drupal", you shouldn't omit the second half because it defines (restricts) its scope. "Web development" sans qualifier normally means writing HTML, CSS etc., not entering content and selecting some styling options in a Content Management System. Personally I wouldn't say using a CMS is "web development" any more than using this comment form is. Which leads to the question: what is this review doing on Slashdot?
Re: (Score:2)
"Professional Mobile Web Development with Joomla, Wordpress and Drupal" equals to "Masturbating to the images of your sister using your toy car, stereoscope and that industrial saw in the corner of the garage".
So it's "Back to Basics"? Nah; probably not ... (Score:4, Interesting)
It's probably worth pointing out that this was not just intentional, but it has been an ongoing violation of the original design of HTML and web browsers.
In any number of history of the development of the Web, it has been emphasized that HTML was primarily designed as a solution to an old problem: Documents were usually designed for a specific screen size, and generally wouldn't work well on a different size screen. But the screens of displays had a very wide variety of heights and widths, both in cm (or inches if you prefer) and pixels. So nothing that's formatted for a particular width can be expected to be easy to read on most screens. HTML was explicitly designed so that a document can be "agnostic" to screen shape, because the document contains hints that can be used to format it for the viewer's screen. The first browsers were built to take advantage of this, and display properly HTMLized text so that it's easy to read in a specific window on the current screen, whatever its size and shape may be.
If this doesn't work for a given site, it's because that site was explicitly designed to defeat the most important design features of HTML, and force the text to be displayed incorrectly on your screen (or in your browser's window).
This should be surprising to anyone at all familiar with how web sites are typically designed. I've worked on any number of sites where I had explicit orders to "design" the site for one specific window size. (This was usually a size that worked well on the boss's screen. ;-) In some cases, when I made the site work on smaller screens, I've been reprimanded for this and ordered to make the site NOT work on screens under a certain size. Yes, management is often that obstructionist.
So now we're facing massive site redesign, as managers learn that the top-selling computers are on those silly little "smart phones", and they're losing customers to competitors who've learned to grudgingly accomodate the people who carry such devices.
If they'd honored the original design 20 years ago, we wouldn't be having this problem now. And 15 years ago, when cell phones started to take off, the writing should have been on the wall for everyone. Digital phones have always been small computers, and the simple application of Moore's Law and other industry statistics said that in a decade or so, those little "palm top" computers would have significant processing power. The digital cell-phone system has been a computer network from the start, and simple calculations told industry insiders that by now we'd have "cell phones" more powerful than the desktop machines of a decade or two back.
But it wouldn't be surprising if the "designers" continue to work on ways to prevent their creations from working properly on the newer gadgets that we're buying. They've gotten away with it for a couple of decades, and now they'll get paid even more to "design" for the new small screens. So their lesson may be that if you provide a limited, restricted product, you can profit even more when your clients have to redesign for a hot new platform. And if it's limited to just that platform, you can be paid again when yet another screen layout comes along.
(Myself, I've found it fairly easy to make web pages that work nearly everywhere. I just leave out all the attributes that specify an explicit size, and that pretty much prevents problems by giving the browser permission to format it for its screen. Except on the iPhone, of course, where the standard Safari browser formats the text for a much larger window, and then shrinks it to fit, making the text unreadable. Anyone know of an easy fix for this, aside from recommending Opera? ;-)
Already out of date (Score:2)
Also I find it pretty funny tha