Development, Strategy

When to Build a Native Mobile App

1 Comment

The merits of native mobile apps over mobile web apps have been widely discussed.

The number of mobile phone and tablet users is rapidly growing, as is the amount of time users spend engaging with apps on these devices. Few stakeholders dispute the fact that a mobile version is important when developing a new application. But how should you chose between developing a native application for one or more mobile platforms, or creating one responsive website that provides for a smooth mobile experience?

First, you should ask if your application needs access to device hardware. Do you need something like this?

Native Application

For social apps where location awareness, scanning, taking snapshots or local sharing is important, you should consider a native application.

Or is your app more like this?

Web Application

If your mobile app behaves much like a web app, chances are a mobile web app will work just fine.

Technical aside: why can’t mobile web apps access mobile hardware?

When smartphones began to enter the mainstream and Apple first released the iPhone, they sparked a debate over whether or not mobile apps should be developed using web standards, or interface directly with the underlying mobile operating system. Originally intending to only support web applications, Steve Jobs announced the release of a Software Development Kit shortly after the iPhone’s debut in order to encourage the development of native apps.

The reason Apple chose to support native apps and the reason native apps remain popular is that developers write native code to be device specific. In other words, a native app can access camera or accelerometer data in nearly the same way the device’s mobile operating system does. On the other hand, developers typically write web applications, even those targeted for mobile devices, to support as wide a range of browsers as possible. Currently, browsers lack full-access to all the underlying hardware they use to run, with a few exceptions. Emerging web standards for 3D and audio may change mobile web functionality, but it will probably be a long time before the technologies are perfected.

Besides hardware support, native apps also have the advantage of running closer to the metal, so to speak. That is, they are compiled or interpreted directly by the CPU or mobile processing chips. Web apps are abstracted away from the hardware. Javascript in the browser must be interpreted by the browser and then translated into machine instructions. Although the performance of native apps is generally superior, some would argue that well-crafted HTML5 and javascript can perform just as well if not better.

Example scenarios

E-Commerce App

You want a web-based storefront with social recommendations, suggestions, and sharing. It should be easy to use and fast on mobile. Do you need a native app?

My answer would be no. E-Commerce sites and basically any new websites should be designed with mobile-first in mind, or at least with good mobile fall-backs. With a good server API and a responsive front-end, a mobile web interface can be just as fast a native application.

Cost: $, about the same as a traditional web application.

Book Recommendation App

You want users to scan the ISBN bar codes on books they like in order to find similar recommendations. A mobile web application won’t cut it because it has no access to the cameras on mobile devices. The solution for this kind of app is to develop a hybrid of a web application and a native mobile app. The views are all web based, but a small bit of native code interacts with the phone to utilize the built-in camera.

Cost: $$, slightly higher than a mobile web application.

Photo-sharing App

You’re an ambitious entrepreneur and decide to take on some major players who already have mobile apps in the top 10 lists of the Apple App Store or Google Play. You need to differentiate your product by having a slicker interface, better interactions, or more ease of use than your competitors. In this scenario, every advantage counts and so you will want the full native experience.

Cost: $$$, about the same as building separate applications for web and each targeted mobile platform.

The last option will always be expensive because it requires simultaneous development of the same features across disparate environments. But don’t let it discourage you when targeting mobile devices.

Considering the wide support for web standards, mobile web is an attractive alternative to native apps. Hybrid apps, another option, allow you to leverage the distribution of app stores and certain types of hardware support. Of course, exquisitely crafted native apps can sometimes take off in a big way, or differentiate your product from competitors that lack slick interfaces. Native however, takes an extra level of commitment that may be daunting to the average start-up.

| | |

One Response

  1. Nick Jordan says:

    Great article, as always reed, keep on smashing boxes!

Leave a Reply