Rise of the Progressive Web App
Picture the scenario..
You are waiting at a bus or train stop. You remember a certain brands product or service you had wanted to check out but didn’t have time. You decide to have a look for it on your smart phone …
Now, you have limited time and connectivity, so downloading/installing a native mobile app is not an option. So, you enter a browser search hoping that this brand has a decent mobile website that is similar to the desktop version you noticed earlier in the day. You hit the website and are pleasantly surprised when the page loads really quickly! A fast, responsive site, it is almost as if it was a native mobile application. It has the same look and feel as the desktop version, but is obviously designed for mobile with performance in mind – what a relief ! In only a couple minutes that you have available it feels like you have engaged with the brand and learned something more about the product or service that you wanted instead of wasting precious time installing/updating a native mobile app, navigating a clunky site not designed for mobile, or had more time wasted waiting for images and other content to slowly download. There is a good chance that the website you were browsing is a PWA, or Progressive Web App.
PWA’s are Here
PWA’s or Progressive Web Apps have been on the rise since 2015, finally hitting the mainstream in 2019. A PWA essentially means a website enabled with the same usability, performance, and limited connectivity adaptability or offline features that you would expect from a native mobile application, without the overhead that a native mobile application brings. The term was introduced by Google, who are leading the way with thought leadership and developer support. However, the entire move to support more sophisticated mobile web technology has been driven by consumer behaviour, and the simple effect of making a greater impact and better experience for the end user by having mobile experiences load faster, and at the same time to break away from the iOS/Android OS update cycle/hell that plagues your smart phone. How often have you gone to check a mobile app only to see that it must be updated, or worse that your phone must be upgraded first ?
Pioneering start-up companies such as Mobify have been focused exclusively on this problem, working closely with Google and pushing the edge of what PWA’s can do, and making breakthrough deployments in ecommerce such as with their customer Debenhams to drastically reduce the length of time it takes to shop online. The are also part of the SAP ecosystem on the SAP App Center.
However, this is still an evolving capability, with much debate and discussion on the core/minimal capabilities a PWA should have to be considered exactly as a PWA and what you need to do to implement one. If you do any research or reading about PWA’s on the web you will see that it probably does not help, that Google has somewhat conflated the concepts of PWA with that of AMP, a framework for Google delivered ‘accelerated’ web pages. Thankfully they have also delivered a PWA Checklist, if you just want to use this as a baseline reference for what constitutes a PWA.
So how do they work?
To qualify as a PWA the application must first run securely in a mobile browser, and be addable to the home screen, so essentially a website. Second, even more crucially, and technically, it must support asynchronous background jobs (or service workers) and a notifications API for push notifications to the user. With these capabilities in place, the app can now go ahead and emulate native mobile apps, while avoiding the update cycle and (some of) the cross platform consistency problems that you would otherwise have to manage, and adapt to changing connectivity conditions that would otherwise dampen the user experience.
Barriers to adoption : The Service Worker
As mentioned, the Service Worker is essentially a background process that can run on a browser, to handle such important tasks as Push Notifications or Background Sync, topics essential for a PWA to reach the capabilities that a native mobile application has. Think about asynchronous download or upload of information. The lack of support for a Service Worker in iOS has clearly been a barrier to adoption/proliferation of PWA’s, as we can image Apple carefully evaluating the impact to the cornerstone of the Apple ecosystem (and revenue stream) that is the App Store. Support for Service Workers finally began shipping from Safari 11.1 which has really opened the doors for PWA’s through the App Store.