Learnings from a Progressive Web App (PWA) Project
This year, instead of using a native mobile app, our client Slush took a leap with us to a completely new territory and decided to create a Progressive Web App for their 2018 event. What is a PWA? In short, it’s an app that you don’t need to download from an app store, since it works in browser, but it behaves and feels like a native app (to dive deeper, read Jaakko’s post about PWAs).
Sounds too good to be true? Yes and no. PWAs definitely have their advantages, but as always when working with a new technology, there are things you need to learn with trial and error. Here’s what we learned.
Google loves PWAs – Apple, not so much
The term Progressive Web App was coined by Google developers, and Google is one of the biggest lobbyists of PWAs replacing native apps. So it’s no surprise that Google’s browser Chrome as well as Google’s mobile OS Android support PWAs incredibly well. For example, push notifications are implemented and adding the app to the home screen is automatically prompted. With Android phone and Chrome, the user experience is really close to a native app.
Apple on the other hand likes to keep people using their App Store, and it shows. Safari does not offer nearly as many PWA features (e.g. push notifications and add to home screen prompt). This we knew when we started, but there was more. Something we learned along the way was that Safari’s Embedded Web View (using the app from the home screen) actually does not fulfil Google’s security standards for their Firebase login. Since the Slush app was integrated with a system that uses just that, we needed to politely direct Safari users back to their browser to use that feature. This was understandably annoying for some users.
Main learnings: for iOS / Safari users PWA is mainly like a responsive web site. For Android users, it’s actually very close to a native app. So consider your audience – if you want the perfect, app-like experience for iOS users, a native app may still be the way to go. That being said, unlike native apps, PWAs do work in every device – at the very least, they work like websites.
Everything’s fast – the workflow and the web app
One of the best things about PWAs is the complete absence of App Stores and their approval processes. For an event like Slush, where surprises may happen in the heat of the moment, this turned out to be a wonderful thing. We were able to react to things during the event, make changes and deploy them in to production. This would not have been possible with a native app, where every change needs to go through the app stores’ (Android & iOS) approval process.
Also, the app itself was fast. Service Workers (a script that runs in the background of the app and separates a PWA from a normal website) enables smart caching that makes the app really smooth and fast, even in bad network conditions. Again, something really important in a crowded event with thousands of busy people.
User confusion – is this an app or a site?
Since web apps are still a very new thing, some users will expect them to behave like a website, others like a native app. In our case, some users were expecting the app to behave exactly like a native app would – e.g. send notifications of upcoming events, while others used it more as a mobile version of the site.
While we’re still in the process of teaching users what PWAs are and what they can do, it’s important to make the user experience as intuitive as possible and be absolutely clear what the app is for and what is does – preferably personalizing the message for different browsers and devices.
To sum up
Progressive web apps represent a technology that will definitely become a more popular choice for service developers in the upcoming years. There are still some caveats to avoid, but as soon as operating systems provide an equally smooth support for PWAs, they will come to really challenge native mobile apps.