What’s best: native apps or web apps? Which are the differences? Those are the questions we hear most as app developers when planning the development of a mobile application.
First we must understand that they are two different alternatives and initially none is better over the other. The choice on whether to develop a native app or a web app depends on the type of project, its characteristics and objectives.
Therefore, the main thing is to understand the differences, the strengths and weaknesses of native apps and web apps.
What is a Native App?
A Native app is software specifically developed for a specific operating system (e.g. Android or iOS). Its development is done according to the parameters and features established by the owner of the operating system -Google or Apple respectively- using the native programming language of the operating system: Java in the case of Android and Objective-C for iOS.
It is common to compare an application with a website, or conceptually relate them. However, a native app would be similar to a computer program. Software installed on Windows or Mac, by instance. The difference is that native apps are installed on mobile devices instead of on laptops or computers.
The main advantages of a native application are the operating fluency (since its operation does not depend on data connection and runs on the device), the interaction with device features (camera, accelerometer, flash, gps, etc.) and an optimal usability or “look and feel”.
Therefore its use is highly recommended when you want completely offline operation. Also when you require quite high performance levels or when it is necessary to exploit certain features of the device in an agile way.
Example of a native app:
What is a web app?
A web app is a web which is designed to be perfectly viewed on mobile devices, thanks mainly to HTML5 and CSS3.
To convert a web app to an application for mobile devices is possible thanks to compilers. This would be a web embedded on an application (it would not be a real native app) which would serve as a “browser”. This is aimed to give a web app a ‘look and feel’ more like a native app. However it is not difficult to see the difference between each and it will continue to present the same limitations.
Web apps are highly recommended for low-budget projects (the development cost can be much lower than a native app, but not always). Also recommended when the limitations of the markets (such as App Store) may pose a problem o when you are simply trying to reach mobile users with your website.
Example of a web app:
- Financial Times (enter from the browser on the mobile device).
Then…web app or native app?
As we began this article, it all depends on the type of project. We describe here two case studies based solely on our experience:
Tourist Info Apps: tourism is one of the sectors which can benefit most from the “mobile world”. In fact the supply of applications aimed at providing tourist info is growing. The amount of available apps allows us to see both types of applications, but…which is most recommended?
Given the nature of the users (most of them are foreigners without data rate on the device or located in areas where coverage may not be as good as desired) and the area of use (information is required in real time, in situations on the street or on a hill!). In this case, our recommendation is to develop a native application. It allows a much more agile and offline use (once the app has been downloaded through the hotel’s Wi-Fi, for example).
It must be said that the fact than an app works without data connection does not mean that you cannot update the content. It will just update the content when you have connection and it will work with the downloaded content when there is no network access.
There is nothing more frustrating than an application that, when you reach the destination, at the airport, stops working….and there are quite applications so!
Informative application for an average company: Gradually companies notice how users access their websites from their mobile devices. Therefore they decide to optimize the information on their websites in order to please those users. If it is an average company (it is neither an express services company nor is related to the concept of mobility) and what it wants is to have a directory with updated information, contact details, location, services, products…then the most efficient solution is a web app.
Generally users will access this information using a wait time or even sitting on the couch (just to not turn on the computer). In these cases, they have data connection and the expected navigation may be similar to a regular navigation on a “normal” web…Therefore, to earmark our programming resources for developing a native app could be inefficient.
To end with, just note that the best thing to do is to deeply study each case. These examples are merely illustrative samples to show the characteristics of each option and the factors that can help you choose in either case. But surely there are cases in which a tourism application is fully justified and cases where an average company web should be developed in native type. The important thing is to make a good requirement analysis as a starting point of any app project.