PWA – The sound of one hand clapping?
Imagine if you will, your Application – created once and running everywhere. It can run as a web application through any browser and also appear like a native app on both Android and iOS devices.
That’s the vision of a Progressive Web App (PWA).
The concept seems great, but if you listen to the industry it sounds like a one-sided conversation – because it is.
First off, Apple does not even have the phrase PWA in its lexicon. The company has never uttered PWA or ‘Progressive Web Apps’ and likely never will.
There are no points for guessing that a Google Chrome engineer coined the term ‘Progressive Web Apps.’ By itself, affiliation with Google does not make the concept unworkable, but there’s a lot of history behind the evolution.
A Little History
In a bit of irony, back in 2007 when the first iPhone was released, Apple was the first company to support the concept of Web Apps (a precursor to PWA), in a mobile OS.
Those were the days when Web applications were wrestling with Desktop applications for prominence. There was no AppStore at that time. Apple believed that extending Web Apps to its mobile platform was logical.
When the iPhone was released in June 2007, Steve Jobs announced that Web Apps, supported by HTML5 on AJAX architecture, will be how Apps are created for iOS. Keep in mind that at the time, HTML5 was not even publicly available, and it would not be available for another six months. Steve Jobs had a vision.
While relatively static Web Apps had been around for decades, the explosion of smartphones, along with HTML5, really launched the concept of a single App platform. The addition of dynamic web pages allowed a new class of Web Apps to be created, and responsive design enabled Web Apps to truly embrace new form factors.
From Web Apps to PWA
PWA was coined in 2015 to describe modern (at the time) Web Apps that included HTML5 capabilities of Service Workers and Web App Manifests. In the mobile context, PWAs allowed for websites to be “installed” in a mobile device’s Home screen, represented with an App Icon and launched like a native app without having to be distributed through an App store.
The Rift (or Drift)
If Apple was the first mobile OS to support Web Apps, and PWA is just an evolution of Web Apps, then why is there a (real or imagined) rift when it comes to PWA and iOS?
In a word, the AppStore.
We are all familiar with Apple and, in particular, Steve Jobs’ maniacal focus on user experience. Soon after the initial iPhone release, Apple quickly had to control the end-to-end process for apps that are installed on an iPhone. So the AppStore was born, enabling Apple to review every app distributed to users in its ecosystem. And to buck-up the development community, Apple introduced its SDK to ensure that developers have a uniform set of tools to create apps for iOS.
Web Apps, and by extension PWA, thus became a forgotten technology to run apps on iPhone and later iPad.
So PWA on iOS is dead?
Not exactly. To its credit, Apple keeps up with HTML5 evolution for its iOS Safari browser and brings in new HTML5 features, albeit at a slower pace.
For example, Apple took two years and two releases (iOS 12 & 13) to eventually support Service Worker in iOS. Service Workers are core to Web Apps (and PWA) to offload network activities from the main application thread.
If you are building a minimalistic app without much sophistication, you can create a PWA for iOS. But Apple makes it clear, to the developer and the user, that a native Mobile App is superior to a PWA in the iOS universe.
What are the limitations of iOS for PWA?
The list is still long and generally contains functionality not defined in HTML5. At a high level,
- Push Notifications
PWAs on iOS cannot receive push notifications – a critical application feature for user engagement of an app.
- Background Sync
Mobile devices, by nature, do not have continuous online connectivity. For an excellent offline experience, an app should allow a user to perform actions in an app even when offline. By its very nature, background synch is a problem for all PWAs. The ability to sync in the background when the device eventually establishes connectivity later is not supported for PWAs on iOS.
- Service Workers for WebView
Chrome and Facebook on iOS will not have access to Service Workers.
- Small Cache capacity (50MB)
iOS limits the content a PWA can store to just 50MB, a significant restriction for anything but a bare simple app. Obviously, native mobile apps don’t face this limit.
- Time limit on Cache (Cache cleared in ~2 weeks)
iOS is also aggressive in clearing the Cache for a PWA in some undocumented period of time. Our guess is this is around two weeks. Imagine a user goes on a holiday and does not use an app for two weeks. When (s)he gets back to the app, a user has to re-do everything in the app from login to set up as if the user installed the app for the first time.
- Web Manifest file support
There are multiple deficiencies for PWAs on iOS in the ‘Add to Homescreen’ experience because of the missing/limited manifest file support iOS provides.
And there are more limitations to be found for the interested reader.
Let’s talk Google
It seems natural that if Apple is drifting away from PWA that Google would drift towards it. Google was a big proponent of Progressive Web Apps.
Every user in the Apple ecosystem, using apps from the Apple AppStore, is one more ‘black hole’ of a user that it cannot view, monitor or track, directly cutting into its ad revenue.
Google has made and is continuing to make several attempts to break into iOS and, by extension Apple’s influence. The web is Google’s forte, so if PWAs had succeeded, there would be more Web (the middle word in PWA) users to track and exploit.
Like many of the rifts between these two giants, this one is simply a fight for the lucrative store of user data and behavior that Google so keenly wants to win.
Why isn’t Google loading more ammunition onto PWAs?
HTML5 remains the predominant and guiding standard behind PWA. Despite having significant Google representation in the HTML5 standards body, Google cannot unilaterally influence HTML5 standards to its whims and fancy.
And even if Google can, Apple will take its own decision and time to implement any such standard into its ecosystem.
While it will continue to pursue PWA, Google has strategically moved onto investing more into other efforts like Flutter and Fuchsia in its battle with Apple.
A verdict of PWA on iOS
PWA should be thought of as one other tool in a developer’s arsenal to create engaging applications. If a quick MVP is needed to gauge market interest or a simple app for a use case that does not require the sophistication of Push Notifications or other limitations described above, PWA is viable. PWAs are also a right choice if your target market does not have iOS/iPadOS users, like in some geographies.
If the expectation is to create the next ‘world re-defining’ application, then steer clear of PWA, at least till Apple AppStore is dominant in the mobile space, which by all forecast is for several decades to come.