Web Vs. Native Development: There's No Winner
There are reasons to develop for the Web and reasons to develop native apps. Here are eight points to consider.
In the annals of premature declarations of victory, "The Web has won" ranks slightly behind "Mission Accomplished," but not by much.
Google's Vic Gundotra asserted that the Web had triumphed in 2009 at the company's developer conference. It was a brilliant sound bite but the premise was flawed. Battle metaphors make compelling headlines but they also oversimplify and misrepresent.
- The Best Mobile Apps are Connected
- New application development game changers for AIX development on Power
White PapersMore >>
"I don't think HTML5 will kill native apps," said Dion Almaer, VP of mobile architecture at Walmart.com and former developer with Palm, Mozilla, and Google, in a phone interview. "The whole native vs. Web debate is very flawed. What I'm personally very excited about is using them together."
Almaer points to what LinkedIn has done with its new mobile apps for Android, iOS, and the Web, and to Twitter's recently updated mobile site. He describes these more as a hybrid approach, in which Web and native components work together.
The hybrid approach doesn't mean using native and Web APIs in equal measure. It means using the right tools for the job.
Almaer actually sounds a bit like Apple CEO Steve Jobs in his appreciation of the merits of native development. Last year, Jobs famously declared that cross-platform development tools lead to poor quality apps, a reversal of his position in 1997.
Almaer may be less emphatic on the subject, but nonetheless argues that native apps have their merits. "Whenever you try to emulate the underlying platform, it never feels right," he said, noting that proper Web apps are not just websites framed in a native app wrapper. "I really don't believe in trying to mimic the platform," he said.
The pros and cons of Web development and native app development have been much discussed. For your consideration, we offer eight points to consider.
Reasons To Go Native
Native apps run faster in many scenarios. This is becoming less true as time goes on and browsers gain support for technologies like WebGL but there are still circumstances when native apps perform better. At the same time, skilled Web app developers can take steps to enhance performance. For example, they can reduce the impact of network access slowdowns by storing interface graphics on the device rather than fetching them over the network.
Native apps are likely to have access to new mobile device capabilities before Web apps do. For example, Apple has been providing iOS developers with access to iCloud APIs and other iOS 5 features before iCloud and iOS 5 reach the public. It's not clear when or whether comparable Web APIs will be made available. This advantage will become more important as hardware-based payment technology like NFC becomes more widespread.
Development tools for optimizing performance on mobile devices have lagged behind the tools available to native app developers. Similarly, developer tools like game engines for mobile app authoring aren't yet as sophisticated or capable as their PC counterparts.
File storage for Web apps is limited to 10MB--5MB in AppCache and 5MB in LocalStorage. Sophisticated games or rich media apps often need more storage space than this.
Monetization of native apps through app stores works. Google hasn't said much about revenue in the Chrome Web Store. That silence should tell you something. There are alternative means of monetizing Web apps--advertising, selling virtual goods--but these techniques depend on the nature of the project. What works for Zynga may not work for everyone.
Reasons To Go Web
Microsoft is making a major commitment to HTML5 development in Windows 8. This is a big deal. It doesn't mean an end to Windows applications but it does mean we'll see a lot more Web applications from Microsoft developers. And if that doesn't convince you, just consider Steve Jobs' advice to Adobe: "New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too)."
The Web demands less revenue. When you sell native iOS or Android apps through the iTunes App Store or Android Market, you pay 30% revenue to Apple or Google. Offering a Web app costs nothing--or 5% if you choose to place it in the Chrome Web Store.
The Web has fewer patent predators, at least at the moment. Developers who create iOS or Android apps do so at their own risk and many--hundreds, according to the EFF--have been threatened with patent claims. Neither Apple nor Google will indemnify their developers, though Apple at least is trying to help iOS developers accused of patent infringement through legal intervention. Web development doesn't come with indemnity either, but the W3C, the standards body that oversees Web standards, has agreements from the more than 50 tech companies participating in the HTML Working Group that their technology is available royalty-free. And when patent threats have been made, the W3C has been active in trying to assemble evidence to invalidate the patent claim.
Ultimately, the Web isn't going to win anymore than Java won or Windows won or Flash won. It will change the way applications are developed and will challenge the conventional wisdom. The winners will be those who, through their due diligence, choose the right technology for the task at hand.
As Almaer put it, "The Web is getting richer, the platform is getting better, and we're going to be seeing this blended environment for a long time."
Attend Enterprise 2.0 Santa Clara, Nov. 14-17, 2011, and learn how to drive business value with collaboration, with an emphasis on how real customers are using social software to enable more productive workforces and to be more responsive and engaged with customers and business partners. Register today and save 30% off conference passes, or get a free expo pass with priority code CPHCES02. Find out more and register.