This story was written by Keith Dawson for UBM DeusM’s community Web site Business Agility, sponsored by IBM. It is archived here for informational purposes only because the Business Agility site is no more. This material is Copyright 2012 by UBM DeusM.

The Agile Way To Do Mobile Development

The debate about the supremacy of native apps or Web-based apps is over. Both won.

Declaring that either native apps or Web-based apps are dead, is dead. It's time to embrace the complicated truth: neither is going away. Hybrid solutions show a way forward.

A central question for anybody trying to craft a sensible mobile strategy is whether mobile applications will (primarily) be written to native APIs or will be Web-based programs that run in browsers on mobile devices. Both sides have their fierce partisans, who will point out the advantages of one approach or the other. Both sides have their Cassandras who will prophesy the ultimate demise of the other.

Web veteran Tim Bray (now working at Google) wrote a blog post that explores a little more deeply into the native-vs.-Web question:

It's like this: The browser's doomed, because apps are the future. Wait! Apps are doomed because HTML5 is the future. I see something almost every day saying one or the other. Only it's mostly wrong.

You need an app if you have to have fast and responsive real-time performance or gaming-level graphics. You need an app to access mobile features such camera, microphone, accelerometer, contact list, or telephony integration. You need to be in the browser if you don't want to pay the platform owner a tariff for transactions, or if you need to reach the absolutely widest audience, or if you don't have the budget to customize for iOS, Android, and Windows Phone.

Bray's short-form takeaway: "It's complicated." That it is. Bray wants to believe that open standards and the Web will eventually prevail, but finds it difficult to remain whole-heartedly behind that position: "It seems very likely to me that there's something simple and beautiful lurking inside the browser platform that will hit the greatest 80/20 point in software history. But I've been thinking that for a decade or more, now."

Enter the Hybrid
Lately a number of big, high-profile mobile apps have been adopting hybrid approach: a core of HTML5 embedded in a wrapper of native code. Examples include Facebook, LinkedIn, Bing, and Netflix. The native wrapper lets these apps participate in the iTunes Store and Google Play marketplaces. The HTML5 core makes them easier and faster to develop, using plentiful and experienced Web talent instead of clawing for the few available native-app developers.

Jeff Whatcott, the CMO of BrightCove, wrote a long appreciation of this hybrid approach to development last year when the company introduced their App Cloud product late last year. He describes how Facebook began with an all-native iPhone app in 2007, but waited until 2011 to release an iPad app. When they did, its code was hybrid; and they replaced the native iPhone app with the same code base, and introduced an Android app at the same time. At last fall's F8 conference, a Facebook manager explained one reason behind this direction:

All of our developers are good at HTML. Only a few of them are really good at Objective-C and Android. We are able to make our Web developers the same as our client-side developers in some respects.

Another advantage to basing the bulk of mobile development in HTML5: there will be less temptation to treat the app as a "discrete, experimental, one-off development project... outsourced to contractors with specialized skills," as BrightCove's Whatcott puts it. A successful mobile app will have a life-cycle in the same way a traditional application -- or a Web site -- does, and the Web team will think of the development in these terms from the start.

What has your experience with mobile development been? Have you been moving toward a hybrid approach?