Probably many of you have at least once heard of a concept called progressive web apps. In the past 3 years, this concept has begun to grow and got more and more popular, yet still not that many people understand what it’s all about.
In this article I will try to get you a bit more familiar with PWA – thanks to that (hopefully) you will have a better idea when can they are used and why are they better (in some cases) than native mobile apps.
Thirst thing we need to know is pretty obvious – PWA is a term that was introduced back in 2015 by Alex Russell (you can check it here: https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/).
After reading some materials we can pinpoint the most important characteristics of a PWA:
- Responsive: to fit any form factor
- Connectivity independent: Progressively-enhanced with Service Workers to let them work offline
- App-like-interactions: Adopt a Shell + Content application model to create appy navigations & interactions
- Fresh: Transparently 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: Can access the re-engagement UIs of the OS; e.g. Push Notifications
- Installable: to the home screen through browser-provided prompts, allowing users to “keep” apps they find most useful without the hassle of an app store
- Linkable: meaning they’re zero-friction, zero-install, and easy to share. The social power of URLs matters.
But still, you may ask yourself a question what a PWA actually is. So basically it’s an app that mimics the behavior of a native, mobile (or desktop, perhaps that’s why they call it progressive) application but without the need of installing it. What you basically do is add the webpage (application) to your home screen (see below, iOS example)
It’s that simple:) After doing so, an icon of the app will appear on your home screen and once it’s clicked, an actual app opens up (without the browser window).
I think that seeing this example will already pop up a few questions and outline some benefits of a PWA.
But before we dig into pros and cons, let’s see how PWA is actually done.
So in case of a native app, we usually create a full functioning backend together with a frontend that serves for the WEB purposes, but the backend has an API that is used to communicate with the external world (frontend application for web or native app for mobile). But once this is done we need to write two separate native applications which (as you can imagine) requires more budget, more resources, and basically more work. This app needs to be put in the Apple Store or Play store so that people can download and install it. Besides the bigger cost, we need to take care of this process. Whereas in Apple Play adding an app is relatively easy, the Apple Store is a whole different story.
In the case of PWA, you do need to do much more than creating a backend/frontend separated app (so basically a backend with an API and a frontend app that will serve both mobile and web purposes). There is absolutely no need to put it in any store.
So at that point you may wonder why to bother doing native apps at all if it’s more expensive, time-to-market is slower and you have to deal with the apple/play store.
This time instead of the details, the devil is in the hardware layer.
Native apps have all the possible (depends on manufacturer) access to hardware, as they are written in native languages. PWA, on the other hand, has very limited access to hardware and even push notifications were introduced recently (Apple is still struggling with this).
This basically means that not every app can be done this way (as some of them tend to be hardware-heavy). Of course, one might argue, that with the concept of WebUSB and WebBluettoth this problem should be deteriorating, but bear in mind that both of those concepts are relatively new.
Another thing is the stores. For some people not having to go through all the red tape around stores is a big advantage, there is also a group of people that actually depends on it. Especially if your users are not that much tech-savvy and do not understand or know the concept of putting the app on the home screen.
Of course, this may change over time, but now it is what it is.
From my experience, PWA is good for MVPs (short time-to-market and smaller budget) or for B2B solutions where users are more educated and can be instructed within the organization how to actually install the app. Also, PWA tends to take much less space and does not need updating, as you are using the “newest” version all the time (the app is not actually saved in the phone memory).
At the end I have put a simple comparison that I found on the internet (source is under the picture):
If you have any questions and are struggling to choose a proper approach, do not hesitate to contact us. We will be happy to guide you through the process based on our vast experience.