We live in an age where there is an app for (almost) everything. Powerful mobile devices freed us from the desk and enabled productivity from anywhere (with reliable internet access). The two dominant platforms for mobile development are Android and Apple (iOS). Traditionally, mobile applications were built specific for the operating system of the device. These are commonly referred to as native applications. Introduced by Chrome developer Alex Russel and designer France Berriman in 2015, Progressive Web Apps (PWA) aim to build a better experience across devices and contexts with a single code base. A single codebase supporting any device is a considerable improvement over multiple versions of the same application for every supported platform. This blog will explore the benefits and drawbacks of PWAs and what they mean for businesses considering application development.
Not all apps are the same. A native application works on the device’s operating system, which means it has direct access to all features like the camera, microphone, thumbprint reader, etc. Progressive web applications work through the browser which has access to some features of the phone, but the application is external from the operating system of the device. This is what makes native apps, native.
Since 2015, native app development has declined as businesses look to find efficiencies and improve user experience. The core benefit to PWAs is that they can run on any device or operating system. This offers significant cost savings both during development and maintenance as the application is developed once and there is only one codebase to maintain. Additionally, all updates are available automatically instead of relying on the user to update the application on their device. A PWA runs on the device’s web browser so the application takes very little device storage, can work offline, and security is provided by HTTPS which allows for “browser to server” encryption. On top of all these benefits, the experience for the user is just like a native application. Without knowing it you have more than likely used a PWA, here are some popular examples:
- Financial Times
- Twitter Lite
However, there are some drawbacks with PWAs. Because the PWA operates in the web browser of the device, it will have some limitations on functionality which will be dependent on the operating system of the device. For instance, it could be more difficult to integrate the thumb reader as an access feature using a PWA compared to a native application. Another drawback is that instead of running as an application on the device, but in the browser, the PWA will consume more battery life due to higher CPU requirements.
Where PWAs struggle, native apps shine. Running on the device’s operating system improves performance and battery life. Full device integration allows for a feature rich solution and there is a large developer community to draw upon. But like a sports car, the specialization that enables high performance comes at a cost. Development and maintenance are more expensive, and more resources are required to launch the application. Likewise, users must install the application on their device to have access to the application, rather than navigating to a web link for a PWA. With how rapidly mobile devices change both in hardware and operating systems, ensuring the user experience is uniform across devices, managing security, and responding to changing market demand requires significantly more resources compared to a single code base provided by a PWA.
To summarize, native apps are best when you are building a feature-rich solution that requires advanced device functionality that is of greater importance than budget or time to market. PWAs can provide significant value for businesses today as solutions increasingly require experimentation and continuous iteration from feedback. PWAs are extremely powerful for getting a minimal viable product to market quickly and inexpensively. Likewise, if the application is expected to have a very long shelf life, maintaining a single code base will provide significant cost savings long term. Additionally, frameworks like “React Native” are in constant development and over time have been closing the gap in functionality between native apps and PWAs. In the world of business, agility trumps functionality depth; therefore, in this context, PWAs can provide far more value to your organization than native applications.