Net or native, you decide

After our discussion around going mobile, we take a look at the positive and negative aspects of developing mobile and web apps

The market's going mobile and businesses need to catch up. Fast.

But should your business develop a native app (i.e. an app that needs to be installed on a mobile operating system) or a web app (i.e. a mobile-optimised site that's accessible on any operating system)?

You could follow e-commerce giants eBay or Amazon's lead and do both. They both have a fully functioning website, as well as a native app for iOS, Android, Blackberry and Windows mobile devices. Amazon and eBay users are already using both platforms for purchase; in January eBay reported almost $2bn of the $53bn profit made from marketplace business was from mobile. Last month, Amazon announced that its customers had ordered more than $1bn worth of products on mobile devices.

But if you've not got the development or financial might to match the e-commerce powerhouses like eBay or Amazon, you'll have to decide which route to take. We recently had this discussion at UXB HQ, so we thought we'd compile a list of reasons to go down either road. Which route you take entirely depends on what your app needs to do – as we've tried to explain below.

Web

Web apps operate through a phone's browser, allowing the app to function on devices running any operating system (i.e. Apple's iOS, Google's Android, Blackberry, Windows WP7, HP's WebOS etc). A web app, as it is accessible on any smartphone with a web browser, effectively has a larger reach than a native app. Developing a web app (rather than native) can be cheaper, as you're not developing multiple OS versions of the same app and can develop using standard HTML or JavaScript skills. A web app also allows you to release and update the app as and when you see fit (a process sometimes limited by native app stores).

With the rapid evolution of technology, web apps are becoming almost as fast as native apps. For example, Apple's latest Safari 5 mobile browser (released in 2010) was developed with a new JavaScript engine (Nitro) enabling it to run JavaScript 30% faster than the previous browser iteration.

Building a web app can (should) utilise web standards, which in time could unlock previously inaccessible features on the mobile device like the camera or address book (which currently only native apps can do). Web apps are subject to tracking and data gathering as with any website (using, for example, Google Analytics) and allow the developer to have complete control over monetisation (something that is limited through native app stores). Because you're on the web, your app's content is accessible and can be shared using the standard social share buttons. This social share function needs to be built into a native app and content (because it's locked into the native app) isn't searchable. Another plus point to web apps!

Businesses are starting to become more aware of the benefits of web apps – the Financial Times recently pulled their native apps from respective app stores and saw over 100,000 people access their web app in a little over a week post-launch. The FT may have created a web app to avoid Apple's 30% sales cut (their Head of Product Development told the Wall Street Journal that the benefit of developing a web app allows publishers to "un-tether ourselves from app stores"), to take complete control of their customers' data and to bypass app distributors to secure "a direct relationship with readers".

Advantages of a web app

  • Accessible via the web, so can be used by anyone with a smartphone browser
  • Cheaper to develop than a native app as it works on all operating systems
  • No time delay on releasing the app or its updates
  • Able to track user information via Analytics
  • Content is searchable and shareable
  • Developer fully controls monetisation
  • Built with web standards

Native

Native apps are accessed via an app store but can also be sold via the web (iTunes has a web platform as well as a desktop program) and are therefore inherently more discoverable than web apps (which are limited to being found on the web). Selling an app (even for a nominal fee) through a store immediately starts generating revenue, which you can't easily do with a web app (users don't generally like paywalls, but in-app advertising and purchases seem to be acceptable).

Native apps can connect to a handset's hardware and sensors (like the camera, address book or calendar for example) allowing a richer and more immersed user experience than a web app can. Native apps are specific to the operating system of the handset it's running on – which requires native operating system-trained developers. Native apps also have a homescreen icon and so are a constant reminder of your content (although on iOS you can create a mobile browser bookmark that produces a homescreen icon to what Apple calls a "web clip" – but not everyone knows that).

Native apps lock users within the app, whereas on a web app one stray click will take users away from your content (and you'll probably not get them back). In a native app, this can't happen – increasing your connection with the native app's users. Native apps also support push notifications (if the user gives the app permission to send them), even if the app isn't open. Web apps are also capable of doing this - but it's just not as easy.

Currently, the biggest difference between a web app and a native app is that the latter does not need an internet connection to function (although if the native app requires data download then it will indeed need a connection). However, W3C are in the process of developing local storage capabilities in browsers using HTML5 - which would bring web and native apps level on this point.

Advantages of a native app

  • Easier to find than a web app (sold via app stores and the web)
  • Quick to generate revenue (in ways less likely to drive users away)
  • Can connect to hardware and sensors giving a more immersive and connected experience
  • Can send push notifications easily and has a homescreen icon
  • Lock users into your content
  • Generally doesn't require an internet connection

If you can't decide between native and web, fear not as there is a compromise.

Hybrid

[Watch the PhoneGap promo on YouTube here]

Companies like PhoneGap, Sencha and Worklight provide a development platform that wraps a standard web-based HTML and JavaScript codebase in an open source framework that gives your web app access to the native app's APIs for hardware and sensors, enabling it to act as a native app across multiple platforms. The best of both worlds!

There are definitely advantages and disadvantages (nicely summarised in the slide below from a presentation by Worklight) to developing an app on either platform, or both, but at the end of the day it entirely depends on your requirements and your resources.

Do you want to develop a mobile app or have you got any suggestions or points we may have missed? Feel free to leave us a comment below or let us know via email or Twitter.