Progressive web apps (PWAs) have been around since the standard was created by Google in 2015. It's arguable that Steve Jobs announced them back in 2007 -- although his enthusiasm may have been curbed later by the fees that Apple's App Store could claim for iOS platform apps.
Apple's notable reluctance to embrace PWA technology has kept PWAs from taking off on iOS devices. The PWA experience on Safari today feels ancient: no push notifications, no geofencing or Bluetooth, and an inconvenient installation process. Much of the benefit of creating PWAs is lost if you're writing them only for Android. The tide may be changing, however.
Apple Users Are Starting To Get Used To Alternatives
Both Fortnite and Telegram have been pushed out of the App Store at some point. Other Apple competitor apps have found themselves in similar predicaments, as have adult-industry products that would never make it through the App Store's release process. Once a user has installed one or two PWAs without the App Store infrastructure, the barrier is lower for other PWA apps.
Apple has also, along with the other big four tech companies, caught the attention of antitrust investigators in the EU, the US, and other places. Since then, Apple has made at least some efforts to ensure that PWA support is not entirely absent from Safari. Apple has used the PWA support it provides as a legal argument against the need for app store regulation.
You may not need to choose. Modern development systems are starting to provide the ability to generate PWA as an output format. Support for PWAs depends on the environment but is usually built in. When it's not, you'll need to add PWA resources and a service worker manually -- a fairly trivial task.
- With Flutter, flutter create can add web support to an existing mobile app.
- React Native developers can use the create-react-app plug-in and react-native-web to maintain a single code base for both native and web apps.
- Ionic has PWA guides for Angular and React.
- Blazor/WebAssembly is one path forward for Xamarin/C#/.NET developers. Microsoft provides conversion instructions.
- Low-code platforms such as OutSystems make it as easy as flipping a toggle switch to allow distribution as a PWA.
The end result is that PWAs aren't necessarily something you need to write -- they're something your development environment targets.
You Have A Choice For App Distribution
The fact is you can easily switch among .ipa, .apk, and PWA, which changes the equation when it comes to building your apps. That refreshes the original question, "Should I develop a progressive web app or a platform app?" Instead, ask yourself, "Should I build my app for one operating system, more than one, for the web -- or all of the above?"
- A native build allows you to use native OS features and gives you discoverability in the App Store, along with an easy route to monetization -- just set the price of your app.
- A PWA build lets you avoid paying a cut to Apple and Google. Your app will be harder to find: It won't show up in the store. You'll need to build additional infrastructure for monetization. You won't be able to support a lot of native features. That's not all bad — lack of native support can be an advantage. Savvy users sometimes prefer the privacy of running in the browser's sandbox and the smaller size of PWAs, as well as the convenience of having something installable on their home screen.
Doing both native and PWA requires extra testing but can provide the benefits of both. A PWA will satisfy occasional users who would normally visit your website rather than install an app. Your true fans -- the ones who spend most -- will want additional OS features and will be glad to install your native app.
This post was written by Senior Analyst Andrew Cornwall, and it originally appeared here.