using iphones to access the web

Developing for the Mobile Web: Native vs. Web Apps

As mobile devices represent a fast and growing proportion of overall web use, one of the big, knotty challenges web developers face is whether developing a native app (one, for example, that’s bought or sold in the App Store) or a web app (one accessed through the mobile device’s browser) is the way to go. At the SXSW panel “The Right Tool for the Job: Native or Mobile Web?” developers struggled to agree on rules of thumb for the mobile web.

With engineers from sites who have built powerful native apps (Tumblr and Facebook), developers of web app toolkits like Ember.js and a recently departed Apple WebKit engineer seated at one table, the stakes were high and the discussion heated. Let’s summarize the pros and cons of each approach.

Native Apps

Most of the discussion around native apps centered on iOS, or the Apple operating system used in iPhones, iPods and iPads. For developers targeting use in the iOS ecosystem, a native app is a tempting choice: Apple provides resources and best practices that make development quick. While this is largely true for developers using the Android operating system, iOS developers have another big advantage: Apple manages both hardware and software, so standards are unified and managed centrally.

If your app uses interactive features of the phone hardware itself, like the camera, a native app makes it simpler and quicker to call and control different components of the phone’s operating system. Facebook’s Majd Taby cited an oscilloscope (an app detecting and displaying sound waves) as a function a web app could not perform. Of course this is an edge case and not one most app developers need to use.

While this sounds great, there are certainly serious downsides to using native apps. If you’re selling content through your native app, you’re going to pay a hefty price – Apple’s contract terms ensure Apple keeps 30% of revenue from content sold through native apps.

Finally, both iOS or Android app developers face technical challenges with displaying text and formatting on native apps. For example, displaying rich text accurately is a real problem in the native app environment, but these are problems the mobile web has made progress in solving.

Web Apps

At SXSW, the primary defender of the web app was Tom Dale, an engineer and co-founder at Ember.js, a company making development tools for web apps. He was ardent in his defense of the mobile web, citing three primary arguments:

  • Browser superiority. Dale believes that browser is one of humanity’s greatest achievements (no small assertion!) and that the web is highly evolved for content delivery, rich text and formatting. Using the mobile web enables developers to take advantage of a superior framework.

  • Interoperability. “We have this common runtime,” Dale said. “It’s called the web.” Building an excellent web app ensures that your site works across platforms and devices, irrespective of their maker.

  • Avoiding Apple. Dale argued developers should stand up to Apple’s aggressive content revenue share and ensure that content owners get bigger percentages of their content sales.  

Of course, any option comes with a downside. The question of discoverability – how your app gets found – can be argued both ways. Folks defending the App Store and its Android homologue believe they provide enhanced opportunities for users to discover diverse apps and tools. But defenders of the mobile web argue that the App Store is only great for discoverability if you get the “golden ticket” – making the top ten or featured app lists that catch millions of users’ eyes.

Furthermore, with an open framework like the web, standards are complicated and messy, and it’s difficult to keep the standards updated with new technology. While the panel did not discuss HTML5 in detail, there was hope that it could emerge as a rich standard for both mobile and conventional web apps.

Yes, You Can Have Your Cake and Eat It Too

Many of the apps you use every day, including Facebook, Instagram and even the App Store itself,  are hybrid apps, using the web for formatting and rich text and using native apps for creating posts and generating content. Generally in hybrid apps, the “sensory stuff” – the interactive components of the app are using the native environment, but the layout takes advantage of the web.

The panel’s moderator Buzz Anderson asked if it was fair to say the future of the mobile web was hybrid. Like many other portions of this panel, it was a controversial question.  

Delaney, the former Apple engineer, argued that there are many competing interests and that it is much too early to tell how the battle will shake out. But even the makers of hybrid apps, including Taby of Facebook, pointed out that there are “land mines on the hybrid app field”. With complex hybrid apps like RDIO, the web-based player and the native app can get out of sync when streaming, providing a bad user experience and dysfunctional app.

Hybrid apps also force developers to update code in two places, increasing the chances that the code will fall out of sync and bugs will emerge.  Hybrid apps increase complexity, and complexity on the web is a dangerous thing.

The Future

After an hour of discussion, the audience’s head was spinning with the back and forth, but no clear answers emerged. Ultimately, participants pointed out that the bulk of any web content is the same, whether it’s running in a native app or on the mobile web. In either case, Javascript is first class citizen, and the view code is where all the work is.

Here’s the simple takeaway for the short-term: If your goal is to enable sharing and interactive features, it may make sense to focus on native app development. But if your content depends on formatting and layout for meaningful consumption – the mobile web may be the shortest route to a solution.

Image credit: oinonio on Flickr