Should You Build a Progressive Web App?
If you have looked into creating a mobile application, chances are you have wrestled with the question of how to build it. Should you build for Android, iOS or both? You may have considered building a hybrid app that can work on both platforms. A final option, and more recent addition to the mix, is to build a progressive web app or PWA.
A PWA is actually a website because it is accessed through any web browser, but it acts like a mobile app. It is available offline and can be opened from an icon placed on your mobile phone’s home screen.
Before we get into the reason you may opt to build a PWA, let’s first explore all options for building a mobile app:
Native Applications: A native mobile app is one that is built in the language that is specific to the device’s operating system. For Apple iOS, that is Objective-C or Swift; for Android it is usually Java. These applications are downloaded from the app store. Native apps will generally provide the best user experience because they use a platform specific user interface and have direct access to the phone’s hardware. This is especially true for apps that involve media or gaming. But there are a few drawbacks for developing native applications. The main one being it is more expensive because you must develop for both iOS and Android.
Progressive web apps are a product of Google and until recently, not supported by Apple. But with the release of iOS 11.3, Apple has added support for the basic set of new technologies behind PWAs.
Progressive Web Apps have the following characteristics:
- Progressive — Work for every user, regardless of browser choice.
- Responsive — Fit any form factor: desktop, mobile, tablet, or forms yet to emerge.
- Connectivity independent — Service workers allow work offline, or on low quality networks.
- App-like — Feel like an app to the user with app-style interactions and navigation.
- Fresh — Always up-to-date thanks to the service worker update process.
- Safe — Served via TLS (a Service Worker requirement) to prevent snooping.
- Discoverable — Are identifiable as “applications” thanks to W3C manifests and service worker registration scope allowing search engines to find them.
- Re-engageable — Make re-engagement easy through features like push notifications.
- Installable — Allow users to “keep” apps they find most useful on their home screen without the hassle of an app store.
- Linkable — Easily shared via a URL and do not require complex installation.
Of course when you can build an app once and have it work on all devices; and when updates need only to happen to one set up code, the cost for development using PWAs is much lower than developing native apps for both iOS and Android. And because the use of Service Workers allow the app to be used offline, be more reliable than hybrid apps and have better, faster performance, PWAs are a very attractive alternative to hybrids. Therefore, in theory, Progressive Web Apps are the answer to many mobile app issues and eventually may overtake native applications and hybrids as the preferred platform.
In summary, which method you choose will greatly depend on what your application needs to do. If you are building a game or media app, you’ll want to stick with native. The Hybrid model may be a good solution for very simple applications and if you want to market your app through the app stores. But if you’re are building a business application, a PWA may be the best option for a few reasons. First, they work on all devices and in all browsers so you can build a single app to work as a website, and as a mobile application. They can be found by internet searches and do not need to be downloaded from an app store. PWAs are more easily update able than native mobile applications. With the adoption of Apple, eventually, they may be the answer to many app development woes. Time will tell.