Apps can be built in many different ways. Your project requirements will ideally dictate which development approach is the right one for you to take. But, being able to align your requirements to an approach is a difficult task, even for those in the industry.
Knowing the different application development methods, however, is fundamental to choosing intelligently. Today I’m going to discuss these methods and outline where one might be used over another.
A web app gets accessed via a user’s web browser, either on a desktop computer or on a mobile device. One of the key qualities of a web app is the wide platform support that it offers. Nearly all computers and hand-held devices come with a built-in web browser — which is all that’s needed to access a web app. This effectively makes web the most accessible form of application delivery.
Given that this app is served from only one place — the web — it only needs to be coded once. A developer will write the code for an app in the native languages of the web (HTML/CSS). This code will then be served out to all the web browsers accessing the app. The characteristic of only needing to write the code once, as opposed to once for each browser, keeps development costs in check. This feature makes web applications a financially attractive option for many projects.
The downside of web apps concerns device integration. The latter is the process of the application integrating with device features, such as geolocation, notifications, biosecurity and the camera, to name a few. For this, a web application will rely on the browser itself to facilitate the integration of the features. And although it is improving every year, browser support for feature integration is still well below what the other methods can offer.
In light of these characteristics, web applications are great for projects with:
- a need for wide accessibility;
- minimal to no use of build-in device features; and
- low-sized budgets.
A hybrid app targets hand-held device users and is packaged up and delivered via the app stores. The underlying code written to create the app is the same as that used for web apps. However, using various development techniques, hybrid apps can leverage all mobile device features.
A hybrid app can be built once, using the language of the web, and then packaged up to target multiple platforms, such as iOS and Android. Again, writing the code once, rather than once per platform, has a significant cost advantage. Being able to reach more platforms with less code reduces the costs of development for not only the initial release of the app, but for all future app enhancements.
Hybrid apps operate further away from the native code in mobile devices, which does introduce a performance overhead between the interaction of the user and the device.
Hybrid apps work best for the types of projects where:
- advanced device feature integration is necessary, e.g. biosecurity and augmented reality;
- high quality mobile device user experience is required; and
- only medium sized budgets are available.
A native app is one that is built to target only mobile devices and is coded using the native programming language of the device platform. Compared to the alternatives, a native app is closer to the platform code, so there is less overhead when integrating with native device features. These include, as mentioned geolocation, notifications, biosecurity and the camera.
With less overhead in interaction with device features, native apps can deliver faster speeds and a better user experience. Given that the app is written in the native code of the platform itself, it has access to all of the underlying features of the device, including things like biosecurity and augmented reality.
Unlike the other app development methods, native development requires that the app be built once per platform. This can have a significant impact on the project budget — not just for the initial release, but also for follow-up projects to build new features and enhancements.
Native apps work best for the following types of projects:
- where advanced device feature integration is necessary, e.g. biosecurity and augmented reality;
- where state-of-the-art mobile-device user experience is required; and
- when large budgets are available.
Progressive Web App
A Progressive Web App (PWA) is the newest method of delivering apps. PWAs leverage the latest capabilities of modern web and mobile browsers, allowing apps to share the benefits of both mobile and web.
A PWA can be added as a tile to the home screen of a mobile device. They can make use of many integrated device features, such as notifications, camera, offline storage and geolocation. In addition, they inherit the qualities of a web app. This means they are served via a browser that gives them universal accessibility, and only need to be coded once, which keeps costs down.
A developer must create a PWA in such a way that a browser can recognise it as one. In this process, the app is given capabilities such as caching and offline storage. These features improve user experience through speed and responsivity.
The limitations of PWAs relates to platform and browser support. Although iOS and Android have released support for PWAs on their platforms, there are some limitations that still need to be resolved. Also, the support for feature interaction that browsers must facilitate still has some gaps, which are the same as those described in web applications. That said, this technology is improving quickly and support is being improved every month.
PWAs are a strong candidate for the types of apps where:
- universal access is necessary for both desktop and mobile browsers;
- moderate use of device features is required; and
- only low and medium sized budgets are available.
Choosing the right technology to build your app with is fundamental to cost efficiency and project maintainability. There is no silver bullet, as each method has their own benefits and limitations. To sum up:
- web apps offer greater accessibility but less functionality;
- hybrid apps allow for greater functionality with less accessibility;
- native apps offer a state-of-the-art user experience, but at a significantly greater cost, and
- PWAs offer greater accessibility and functionality but with less support.
Before making a decision, it’s best to ensure you have done adequate research into each method, and also ensure that you have a clearly define set of project requirements. This will give you the best chance of properly aligning your needs to the right technology. Which will ultimately help in lining up your project for success.
Originally published at https://denimdev.com.au on September 9, 2020.