Native, web, huh?

First off, what exactly do we mean by "native application" and "web application"?

Native mobile applications are built in a similar way to traditional desktop applications. The most obvious example of native applications comes via Apple's App Store. This allows applications (or 'apps') to be downloaded and installed in a relatively simple manner. The apps from Apple's App Store only run on iOS devices (iPhone and iPad). The apps also vary from ridiculously simple to massively complicated - just like regular desktop applications. Other companies provide similar stores for their devices that work in a very similar manner. A native application may or may not need an Internet connection to work - it depends greatly on what the application actually does.

Web applications are slightly different in that they aren't necessarily limited to running on one type of device. At their core they are just like regular web sites, so in theory can run on anything that has a relatively modern and capable web browser. This means that they can run on most modern mobile phones (and other places besides). To access them you just go to the relevant web address - just like viewing any other website on the Internet. This means, that in the general case, web applications do require an Internet connection in order to be useable.

The two approaches come with various pros and cons. Let's see which approach is better in a variety of different situations. Let battle commence...

Installation

Installation of native applications can be very simple. It normally boils down to selecting the app you want via a store interface on your phone and selecting to install it. The app then downloads and installs and is ready to use. Keep in mind that whilst some apps are free, others may cost money.

Web applications aren't typically installed in the traditional sense. You bookmark them so that you can return to them easily. Remember, they are just regular websites at their heart, so the code that powers them remains on a server somewhere out there on the Internet and isn't directly installed onto your mobile device. In some cases web applications can be made to store certain portions of themselves on your mobile device, but this may lead to limited functionality or not be supported by all devices.

Some mobile devices allow you to treat web applications as if they were actual native applications - by allowing you to save an icon for them and by removing the normal browser interface that would be displayed 'around' them when in use.

In most cases, installation is a relatively straightforward proposition, whether you go native or web. Nevertheless, native applications probably just about edge it. This is because bookmarking web applications varies greatly by device and is not as simple and obvious as the installation process for native applications.

Score: Web 0 - 1 Native

Usage and presentation

In actual usage you might not notice much difference between a native application and a web one. Depending on the nature of the application, the controls you interact with might be exactly the same. However, in some cases the fact that you are using a web application through a web browser might be noticeable, whereas a native application can potentially be slicker and more sophisticated.

This can manifest itself in subtle ways - for example, scrolling though a long list of items on a native application that offers a touch screen interface, might be smooth and responsive. Doing the same thing on some web applications can be slower and less pleasant. There is no hard and fast rule here, and it will vary on how well the application has been implemented. Generally, native applications tend to offer a nicer experience at present. However, web applications are catching up fast, so this might not be true for long. There are already some very well built web applications that are more than a match for less well built native applications in usability terms.

Whilst web applications can be very good, native applications do still have the edge here.

Score: Web 0 - 2 Native

Device integration

Most modern mobile devices offer a slew of clever features - such as inbuilt compasses, GPS, gyroscopes, and touch screen interfaces. Native applications are able to directly integrate with these features and make the most of them. Web applications may have some access to such features (this will vary greatly from device to device) but in general are not as closely bound to the underlying hardware on which they are running. For example, at present web applications will not have access to your address book or camera.

This is a very fluid situation, however, with modern web browsers constantly improving and offering increased access and support for the underlying hardware. For example, it is possible for a web application to make use of GPS, to automatically locate the user on some devices.

Native applications definitely win this round - although web applications are gaining ground.

Score: Web 0 - 3 Native

Development

Developing a good native application can be costly and is more akin to building traditional desktop software. When going native, a decision needs to be made as to exactly which devices you wish to support. This could mean the need to build separate applications for iOS based devices (iPhones, iPad), Android based devices, Blackberries, Windows Phones, and any number of other devices that come and go over time.

Web applications are built in a very similar way to traditional websites and in theory can run on a large variety of devices. Obviously, different devices offer different capabilities, so it's not quite as simple as write once, run anywhere, but a well built web application is far more portable than a native application.

There is a large push within the web industry to allow clever and more sophisticated web applications to be built. A lot of this is centred around HTML5 and related technologies. As HTML5 matures and the popular web browsers improve support for its capabilities, web applications will become increasingly sophisticated and rival native applications in presentation and usability.

Web applications win this round.

Score: Web 1 - 3 Native

Distribution

Distribution of native applications can be problematic. Each device manufacturer has their own approach. Some are relatively free and open, whilst others can be slow and subject to approval processes. For example, in order to get an application listed on Apple's App Store, you must first submit the application and then wait for it to be approved before it becomes available for users to install. This may take anywhere from a day or two, to many weeks and beyond in extreme cases. Each subsequent update is also subject to such a process. You also can't guarantee that users will upgrade to new versions of your application when you release it.

Web applications are much easier to distribute as they are simply websites. They can be updated whenever necessary and there is no need to go through any third-party approval process. As in the general case, web applications don't install on the end user's mobile device. New versions are immediately usable by everyone - you don't need to wait for them to upgrade.

One benefit to the native application distribution model is the potential for a wider audience to come across it. If you purely promote your web application on your own site, you may be limiting who finds it. This might, however, be a problem if you wish to limit the availability of your app to an internal audience, or similar.

Web applications win this round as the user has far more control over them.

Score: Web 2 - 3 Native

Cost to the end user

Native applications can be free, or come at a cost - this is normally something determined when submitting the application to the particular App Store in which it will be distributed. Some native applications are free but include advertisements within them - often with an alternative paid-for version that removes such adverts. It’s worth noting at this point, that, generally, users have become more accustomed to paying for native applications.

The situation is slightly less clear with web applications. Many web applications (and indeed websites) carry advertisements. However, actively charging for a web application is uncommon and typically something that is disliked by end users (for obvious reasons!).

There's no obvious winner here - how this affects your application will vary greatly with your situation. So in this instance, a draw is deemed fair.

Score: Web 2 - 3 Native

And the winner is…

Well…it depends! Whilst on the face of it, native apps might have won this simple little battle, the reality is more complicated. It really does depend on your particular situation and requirements.

If you wish to sell your application, need close integration with device features, and/or want your application to work offline, then you are probably best going with a native application. You will still need to decide which devices to target, and be prepared to pay the inevitable developments costs this will bring.

If, however, your application is designed to complement your existing website (maybe sharing a lot of data with it), you wish to target many different devices, and/or your budget is limited, then a web application may be the better choice.

In some situations it may even make sense to do both!

Native applications currently have a larger mind share, and thanks to the iPhone, are considered the hot thing... but don't discount web applications! The increasing pace of HTML5 development and support means they may well take over. Either way, both will be around for a long time.

The key is that whether you go native or web, you need to make sure your application is well considered, well built, and well marketed.