What is a PWA? Who Uses Progressive Web Apps and Why They Matter
You may have heard this term before, and you might think it was just trendy technology. I am here to tell you otherwise. Most of the articles I write because I’ve spent dozens of hours trying to figure something out on my own and want to create a comprehensive guide to what I’ve learned. This is different. I’ve been talking for years with technologists like me about the evolution of applications and the implications of cloud and web technologies for the broader development space. It is certainly a long time coming.
- PWA: progressive web app or browser app with superpowers
- Downloading PWA is a bit different on every operating system.
- PWAs run on simple browsers and a background service agent.
- PWAs can do most things but lack some hardware.
- PWAs are gaining ground, especially with streaming games.
- PWAs are going to take over the world. Bring your manifest and your service agent.
- Doing PWAs well is a bit more complicated than a beautiful manifesto.
What is a PWA?
The PWA, or Progressive Web App, is essentially a web application accessed through its own native icon rather than opening a URL in your browser. So what is a web application? It is a technology-based application that runs on your web browser. Contrary to what is expected of static websites, web applications and therefore PWAs can have highly interactive and complex user interfaces, like what is expected of your usual desktop or mobile application. Much of the processing is done on a remote server which is now more viable than ever with highly reliable and cost effective shared cloud hosting. Web technologies have continued to evolve, enabling things that weren’t an option a decade ago and one of them is a PWA that acts and feels like a native app.
Use a PWA
PWAs are downloadable like a normal native app, but not from your usual locations. If you want a sample PWA to test things out, head over to app.starbucks.com. With PWAs, you download the app from the browser you’re accessing it from, so the experience will be slightly different depending on the browser (and some like Chromium to iOS no longer works from 2020). For android, your browser should display a prompt to download the app if the PWA is configured correctly. On Chrome, for desktop, just go to the dot stack in the top right and look for the “Install…” Edge option to the Windows is in the “…” menu at the top right under “Applications” and there should be an “Install…” option. At Safari for iOS, you use the “Share” button (arrow pointing up) and click “Add to Home Screen”. Now that it’s installed, it should act as you’d expect.
how they work
PWAs work by running the web application in an (often) simplified version of the browser that gets its own icon. The app also starts a process called a service worker, which handles caching certain information and receiving pushes from your server. Both of these technologies make your cloud-native app feel like…well…just a native app (whether on mobile or desktop). Not only do PWAs provide the friendly icon and storage information (for offline use), but push updates allow users to receive notifications when the app is not open (except iOS…always on). waiting). What more could you ask for?
What they can’t do
You couldn’t ask for more. Well you could, but not in many cases. Some people like to oversell these issues, others like to undersell them; I will try to share the difference. Let’s start with the glaring problem: iOS ENCORE hasn’t enabled push notifications for browsers, so if you’re planning on having a lot of outside app engagement, you’re missing half your population. Although there are workarounds using other email solutions. This, combined with the lack of access to other hardware, either on iOS or both, limits the multi-layered hardware interaction needed for some complex applications.
That said, most things don’t need Bluetooth, ARKit, altimeter, and battery info. Web solutions still have access to the main interactions with GPS, audio, video and images. Although connecting to other apps like native social apps is a no. You also have limited local storage and you cannot manage apps like a native app (especially on iOS).
What’s the hype
PWAs have slowly built support over the past few years. The “progressive” part really started around 2015 on Android, but Apple (although a leading player in web applications) has dragged its feet, still adding necessary support even in 2020. Desktop browsers were supported in 2019, but even before that, major companies implemented PWAs as part of their distribution strategy, or even for strategic functional offers. We’re talking big names like Twitter, Starbucks, googleetc
These individual implementations don’t seem earth-shattering, mainly because they were often just copies of their App store counterparts. However, the latest news changes that. Due to restrictive App Store policies of Apple, Google, Nvidia and Amazon are pushing their streaming-based gaming services exclusively as PWAs! And ironically, Apple is promoting the open web as a solution to their restrictive rules for companies that have complained.
This is probably the start of a turning point for the PWA as a considered total alternative to native app development instead of an afterthought. There are certainly motivations to break away from the holes of curated native applications and continue to push web technologies forward. With the active improvement of frameworks, the development of quality web applications becomes more and more efficient and profitable. And as we get a wider variety of hardware interfaces through which we view the digital world, having a flexible web application makes more and more sense.
Ultimately what I’m saying is that web technologies are starting to fill in all the gaps that other technologies have had for so long. Things are moving from controlling personal hardware to controlling the cloud, which many technologists, including myself, have been waiting for years.
When should and shouldn’t you PWA
But quickly, before you jump on the bandwagon, let me offer you a few suggestions. Remember that these are guides and not prescriptions for every situation.
In most cases, I would encourage PWA, especially for initial MVPs. However, if you have an app using special hardware on the phone, like a Bluetooth beacon, you’ll probably still need to use a native app. If your app is all about cloud-based content sharing (like a photo-sharing app), consider using PWA, especially if you want to encourage low-friction interaction (no downloads required). If you need constant notification streams (especially for iOS users) you might need a native app, although I encourage you to wait and try other notification solutions like emails/SMS (hopefully we’re close to breaking that iOS barrier). If you want the user to be able to download large chunks of content but not have access to the files (think podcast player), you will still need to go native.
If you’re doing anything else, I encourage you to consider PWA and talk to a consultant like me to find the right solution for your business case – especially since there are other solutions that still give native access but are also taking advantage of web technologies that provide future advantage.
What do you need
So you’re sold on the PWA. What do you need? Basically, you just need a web manifest and a service worker plugin added to a traditional web application. However, to create a truly effective Progressive Web App, you need a lot more. You can check out this pretty comprehensive guide to web application architecture or contact a consultant to start the path and build your application the right way.