22 November 2020
Not enough people know about the power of Progressive Web Apps (PWAs). Whenever I bring the concept up with friends (including developer friends), they tend not to understand what the benefits of PWAs are or why any users would ever use a PWA over the traditional web browser they know and love (or maybe hate). My answers to the confusions surrounding PWAs are numerous, but I want to try to use some practical examples to explain why I think PWAs will save the open web even as we see walled gardens raising their walls higher by the day.
You may have heard of the "epic" battle being waged in courts between Epic Games and Apple. If not, the tl;dr is Epic Games no longer wants to pay Apple 30% of the proceeds they receive from players who purchase their in-game currency on iOS devices. Epic released an in-game payment system on iOS that bypassed Apple's payment system, and, very expectedly, they got banned. They did the same thing on Android devices, and they were subsequently banned on Android too. Epic used the bans as a springboard to file anti-trust lawsuits against both Google and Apple.
This case study is not about whether you stand with Epic, stand with Apple, or stand in the corner twiddling your thumbs. What it is is an illustration of anti-competitive practices and their impact on the web. Apple is a walled garden. There is no disputing this. It's a fact paraded around as convenience, as security, as usability. Your iOS device or iPad is not yours in the sense you cannot install whatever you want on it. You can only install what Apple says you can install.
There is some truth in the protective qualities of a walled garden approach like this. Apple has been known for decades now for its stability and its lack of viruses. Yet, that stability and security comes at a cost. You may not be getting the best deals you can when making payments in-app for the software you use on your phone or iPad. Surely, apps tack on a percentage to whatever they would otherwise charge to help offset the fees Apple extracts. And what about those older Apple devices that are no longer supported by Apple? Those perfectly serviceable iPads lying in the junk heaps or in your junk drawers? In an open ecosystem, in the open web world, a device's age has no bearing on whether it can be used, on whether new software can be installed.
So, take sides in the Epic vs. Apple battle if you want, but the point is not about that one particular battle. The point is about the wider problems a closed web (and make no mistake, native apps on phones and tablets are part of the new web) pose to everyday people.
Progressive Web Apps, at their core, are nothing more than web apps. They are applications you access via a traditional desktop browser or a mobile browser. And yet, PWAs offer something so much more than the traditional experience.
PWAs offer a place on your phone's or tablet's home screen. They offer an opportunity to live among the convenience layer offered by having an app available with just a simple click on your home screen. PWAs also offer the opportunity for apps built for the web to live in your start menu or in your dock on desktops and Macs.
As exciting as the proposition of a web app being something that can be installed like a native app is, that only scratches the surface of the potential offered by PWAs. APIs that offer near-native app access are powerful and can create an experience that is indistinguishable from native apps. Push notifications, file system access, splash screens, offline support, and more are all available through PWAs just like they are with native apps. Web apps can be distracting if for nothing more than the always-there option to open another tab. With PWAs, you can focus. With a web app that opens like a full-screen, native app, you can focus on the thing you intended to do. This benefits users, but it also benefits the app developers in that their users are less likely to leave quickly.
The biggest benefit PWAs provide is their circumventive nature. Apple, unless they decide to entirely disregard web standards, cannot prevent PWAs from being installed on user's home screens. Apple and Google cannot levy 30% taxes on purchases made in these apps. As devices age, they can still continue to be useful with new software obtained outside the App Store and Play Store ecosystems. Competition can be restored.
To prove my point, I offer you another mini-case study:
Amazon Luna is a still-in-beta streaming video game service. Much like Google Stadia or Nvidia GeForce Now, Luna offers players a nice library of games they can play for a monthly fee. The players do not need to worry so much about their device's hardware capabilities as these games stream from powerful, remote machines straight to the player's device or computer.
Apple refuses to allow streaming gaming services on the App Store without significant concessions from the providers. So, Amazon Luna decided not to even worry about a native iOS or iPadOS app that would have to be submitted for review to the App Store police. Instead, they built their service as a PWA.
I installed the Amazon Luna PWA on my iPhone and my iPad. The experience of firing it up feels incredible. It feels like I'm launching a traditional native app. And yet, it's not. It's free from the shackles of app store regulations.
Luna is not even the first contender in what I expect to be an onslaught of companies offering PWA experiences so that they, as companies, may have more flexibility in their offerings and so that users have more options available to them. Nvidia GeForce Now, since September, has had the option to install their service as a PWA on mobile devices.
Streaming gaming services face rules that do not apply to streaming video services, so they may ultimately be the ones that lead the charge in widespread PWA adoption. PWAs are not new, and many big companies, including Google (which is odd considering their ban on Epic), Starbucks, Pinterest, and Twitter support PWAs.
There is a whole new (and really old) world of opportunity offered by PWAs, but that is not to say they are perfect. PWAs have a lot of power. The APIs get better by the month and that means developers get an increasing amount of access to your device.
This means the onus of security shifts from app store reviewers to users themselves. This feels like the right tradeoff, but there will surely be malicious actors as PWAs gain popularity, and there will surely be users that fall victim to those actors.
But the web is a place for sovereignty and choice. Part of that is responsibility. If people are never given the opportunity to learn how to protect themselves, they will always be beholden to others. Perhaps, PWAs offer people the opportunity to take back control and truly learn how to protect themselves.
I'm excited about the future PWAs offer. The web, including mobile apps, should be open. It should be competitive. Despite Facebooks and Googles and Apples, the web can remain open, and PWAs will play a role.