What Are Progressive Web Apps?
Progressive web apps are published in the same way as any other web page, and they behave like normal apps when loaded onto a mobile: they can send web push notifications, work offline (i.e. they are independent of connectivity) and be accessible from the home screen, just like a mobile app from an app store.
The key benefit of a PWA is that a company doesn’t need to build both a web application and two whole mobile apps (for iOS and Android). As a result, costs can be significantly reduced during software development.
Moreover, progressive web apps are easier to develop and maintain than native applications. They combine the best features of the web and mobile apps – plus they make use of the vast web ecosystem, plugins and community.
PWA is not a technology as such – it’s a name for a collection of technologies that together make the delivery of app-like functionality possible from a web application. Unfortunately, there’s no official definition for the term PWA, and no standards body making sure that PWA sites conform (people are mostly making it up as they go along!). Enthusiasts for new web browser capabilities have coined the PWA term because it makes the whole idea of web-based mobile apps easier to understand.
What Constitutes a PWA?
The short version, from Google’s checklist, is that:
- The app should run securely – i.e. using HTTPS
- It should be fast, modern and easy to use
- It must work very well offline
- It should be hard to tell it’s not a native App
However, some of Google’s requirements aren’t that easy to meet, making it difficult to convert existing web apps to PWAs. The requirement would ideally need to be included in the initial planning stage of the project.
What supporting technologies does a PWA depend on?
- Browser support for hardware integration – e.g. accelerometer, camera, contacts – this is quite good on modern devices, but not as good as the support within normal apps.
- Offline support, so the app continues working when network is lost. This has been possible on the web for quite a few years but has been extended with the introduction of “Service Workers” in the last year, which make it much easier to do a good job of offline support.
- Placement of the PWA icon on device home screens – Google Chrome prompts the user to do this if the app meets guidelines, for example.
Say Goodbye to App Stores
In effect, the true consequence of PWAs will be to bid farewell to the app stores, since the distinction between a web app and a mobile app effectively disappears.
This is a key benefit for developers because working with Apple and Google can be very difficult. Apple, for example, are known for their strong views and difficult approval processes.
Timothy Powderly, director of government affairs at Apple, admitted during the 2018 apple congressional response that they reject on average 36,000 apps a week. This is out of every 100,000 submitted!
But Google accidentally bar people from the stores reasonably often too, which means any route that avoids the app store approval process is a big win for developers – and their customers.
Apple and Google
With the growth of web-based apps continuing, it’s likely that in the long-term web apps will take a significant slice of the market from mobile apps by taking advantage of major advances in modern web browsers, web APIs, and front-end frameworks that deliver good app experiences to all users, regardless of platform.
This applies additional pressure on Google and Apple to deliver better support for PWAs within the Chrome and Safari mobile browsers. To an extent, Google is already focusing on expanding the features of its current browsers to let web applications achieve the same UX level as mobile apps.
Up to now, the support for PWA features on the two main platforms hasn’t been a huge development priority. Apple delivered some additional features in iOS 11.3, but there was still disappointment that other requested features were missing. Google appears to have better PWA support, but there are still issues. It’s important to remember that both Apple and Google get 30% of sales from App Store apps, but nothing from PWAs!
From Blueberry’s point of view there are still two big setbacks with PWAs:
The first is the obvious one: neither Apple or Google allow a PWA to be added to their App Store unless it is wrapped up as a real app. Wrapping can work for Google, although it defeats some of the purpose of the exercise.
This may not be the case forever though as Google continues to grow its support for PWA’s. This can be seen with their release of Lighthouse – a web development tool to audit PWA’s performance. Does this mean we may see Play Store support for PWA’s on its way?
Martin Green, CEO of Blueberry Consultants, said “Wrapping is much trickier in the Apple world, and is frequently impossible to get away with – when we’ve done this before, we were required to add features to the wrapper to get approval.
“For many companies, it’s essential that their app is present in the App Stores, because that’s where people look. Unfortunately, this makes the PWA route unviable. There are still a good number of companies who need an app for internal purposes – these companies are often happy to be out of Apple’s review system and are okay with web-based delivery. But they are a minority.”
The second is more technical.
Martin explains: “We’ve not yet found a sensible toolset to synchronise data between the server and the app. For many apps, this isn’t a big issue: apps with a large database on the server simply can’t work offline. Many apps have relatively little data, and it’s easy enough to roll our own offline sync. But for bigger, more complex apps, it’s better to have a strong database layer that is designed for offline support.
“Google Firebase is the best contender, but we prefer to put our data into an SQL system, not a JSON DB. We continue to research this problem.”
Even though it’s a bit confusing, the PWA label is valuable; it gives a way for the customer to understand the difference between the new way of creating web applications and a normal mobile app.
Currently, there is mounting pressure on Google and Apple to deliver better support for PWAs within the Chrome and Safari mobile browsers, and this is happening slowly. Meanwhile, Microsoft has created a tool to create PWA apps from just the url of a website, called PWA Builder. Could we see the rise of a Microsoft based app store that includes PWA capabilities?
The PWA concept itself is very exciting – many developers would love to be able to ship new versions without Apple and Google acting as the gatekeepers as, at present, this has some significant flaws.