The hottest topic at last month’s Web Directions @media was the mobile web. Almost every speaker had something to say, but two of the most notable were John Resig and Jonathan Stark.
John Resig: Testing Mobile Web Apps
Has jQuery saved your sanity? This is the man to thank.
John is hoping to build a mobile-enabled version of jQuery which supports the majority of popular devices released during the past 3 years. Note that there won’t be a mobile-specific version of jQuery; it’ll be a single unified library which supports all popular desktop and mobile browsers.
For this reason, it’s been necessary to obtain platform usage statistics. This has been far tougher than John expected:
- Many mobile vendors and data carriers are secretive about usage statistics.
- Most developers concentrate on developing software for their own devices (usually an iPhone) and rarely consider other platforms. Web statistics are therefore influenced by the applications which are available rather than platforms themselves.
Cross-browser mobile web development is crazy!
And you thought testing half a dozen desktop browsers was tough!…
As a rough guide, the mobile market is an inverse of the desktop with Opera at the top and Firefox and IE at the bottom. Unfortunately, if you hate desktop browser testing, you certainly won’t enjoy developing mobile web applications. There are far more browsers, the capabilities vary immensely and the testing process is complicated. John’s browser test grid is scary!
Mobile simulators can help … when they’re available. Unfortunately, the availability and quality of emulators varies significantly. Pick of the bunch are the Opera Mini / Mobile emulators and remote debugging with DragonFly.
However, John noted that few of the emulators are accurate and they are no substitute for testing your application on a real mobile phone. Here’s where it gets expensive: to purchase a collection of A-grade mobiles such as the iPhone, iPad, Nokia N97, Palm Pre, and Androids, it will cost around $2,500. That cost doubles if you want to test B-grade browsers.
Jonathan Stark: Building Mobile Apps
Jonathan’s excellent presentation started by reminding us how huge the mobile market had become:
- there are around 4.6 billion cell phone subscriptions
- smartphones account for around 15% of the market
- 56% of public wi-fi connections are from mobile devices
When building a mobile application, Jonathan recommends developers carefully consider their goals and target market before choosing a technology:
- Native apps: best cosmetics and functionality, but suffer from fragmentation — a separate app is required for every mobile device.
- Web apps: easiest to test, distribute and support but are sand-boxed and cannot (currently) access the phone hardware or OS such as the contacts address book or the camera.
- Command line apps (SMS): offers easier development and payment options, but are more difficult for users to discover.
However, Jonathan considers web applications to be the most cost-effective to produce, most standardized and the easiest to distribute. Libraries such as jQTouch (which Jonathan now maintains) make this process far simpler and he proceeded to create a iPhone application with offline functionality. Impressive stuff for a 20 minute demonstration.
Finally, Jonathan praised PhoneGap — an open source project which allows developers to build native applications for multiple devices using web technologies. It could provide the benefits of both the native and web app worlds.
Coming in the next Web Directions Reflections post: Bruce Lawson is lost for words and Remy Sharp eats HTML5 for dinner…
Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.