Year of PWA: A Summary

On New Year’s Eve 2017, Maxim Salnikov proclaimed 2018 to be the year of Progressive Web Apps. The #YearOfPWA is almost over now and we’ve come a long way. Here’s a short recap of all the fantastic things that happened.

January: Apple Joins The PWA Movement

In January, Apple announced that it would release support for service workers and the Web App Manifest with Safari 11.1 in iOS 11.3 and macOS 10.13.4. With Apple on board, the application model of Progressive Web Apps finally became a viable alternative to native app development.

February: Microsoft Welcomes PWAs to The Microsoft Store

In 2017, Microsoft announced to implement service workers, one of the basic technologies of Progressive Web Apps, in Edge. In February 2018, Microsoft welcomes PWAs on Windows and makes them first-class citizens: There’s absolutely no difference between a “native” UWP app and a PWA. Ever since Windows 8, HTML5/JS-based Windows Store apps have been on par with their native counterparts written in C++ or C#. When installed from the Microsoft Store, PWAs can access any UWP API (the Twitter app uses this approach to pin tiles to Start) and they are no longer subject to space quotas.

The official Twitter client on Windows is a PWA

March: Payment Request API Lands in Safari

Together with service workers and the Web App Manifest, the Payment Request API lands in Safari 11.1 and iOS 11.3, released in March. This API allows developers to request payments from the user. Platform vendors can decide which payment methods they want to implement. Whereas Microsoft and Google both implement the Basic Card payment method for requesting basic credit card information, Apple exclusively implements its own, proprietary payment method Apple Pay. Unfortunately, the Push API is not supported by Safari yet, and it’s also not a part of the WebKit feature focus for 2018/19.

Payment Request API in Apple Safari on iOS

April: PWAs on Chrome OS Canary

In April, Chrome OS Canary allows installing PWAs. On Google’s desktop OS, PWAs run offline, in a separate window and get an own icon added to the shelf from Google Chrome 68 onwards. This marks the beginning of desktop PWA support in Google Chrome that was even further extended by the end of 2018.

May: Angular CLI & PWAs in a Breeze

In May, Google releases Angular CLI 6. This new version of Angular’s command-line tool introduces an ng add command which makes installing libraries a walk in the park. By running ng add @angular/pwa, developers can easily enable PWA support for their Angular applications.

June: Google Search & Service Worker

In June, Google starts rolling out service workers for Google Search. The service worker is used to speed up repeated searches on Chrome for Android in order to show the search results twice as fast.

July: Fresher Service Workers and Mini-Infobars

With Google Chrome 68 released in July, service worker scripts will stop obeying the HTTP cache by default. This prevents the service worker script from being cached (willingly or unwillingly), thereby delaying website updates. In addition, the app install banner on Chrome for Android was temporarily replaced by a mini-infobar and is expected to be ultimately superseded by an app installation button in the address bar.

The old app install banner (left) vs. the temporary mini infobar (right)

August: Vue CLI & PWAs in a Breeze

With Vue CLI 3.0 released in August, developers can add PWA support for their Vue-based projects by running vue add @vue/pwa.

September: Maskable PWA icons

In September, the Web App Manifest specification was extended by a new icon purpose called maskable. This purpose allows user agents to crop app icons to the needs of the platform, e.g. squares for Windows, rounded corners for iOS or circles for Android.

The maskable icon purpose makes your icons ready for cross-platform usage

October: Desktop PWAs on Windows & Linux

From Google Chrome 70 onwards (released in October), Progressive Web Apps can also be installed on the desktop operating systems Windows and Linux. The add to home screen (A2HS) support for macOS remains in the works and is expected to arrive soon.

Spotify PWA on Microsoft Windows 10

November: Chrome Capabilities

Google’s Project Fugu, called Capabilities in the developer documentation, is another initiative by the Chrome team to further improve the feature set of Progressive Web Apps. The first APIs to arrive are Web Share Target API shipped in Chrome 71, the Badging API (notification badges for the PWA’s app icon) and Writable Files API (restricted access to the native file system). There are lots of interesting APIs on the backlog, including contact pickers, geofencing, system tray/menu and touchbar access, Web NFC, run on startup and many more.

The Badging API will allow PWAs to control their notification badge

December: Edge Goes Chromium

In December, Microsoft announced that its browser Microsoft Edge will be based on Chromium (Blink and V8) in the future. This step makes testing more comfortable for web developers, as only three different rendering engines (Gecko, Blink, WebKit) remain. The new Microsoft Edge will allow users to install PWAs to their home screen, a feature that was missing before. The first beta version is expected to arrive in early 2019.

On a personal note, I am very proud to announce that my (German) book on Progressive Web Apps was published today. It is the tangible result of my last two years’ dedicated PWA research plus my contributions to 26 national and international conferences. My Thinktecture colleague Steffen Jahr and I held workshops at ng-europe, AngularConnect and many more conferences which were always well attended—the huge developer interest in PWA remains unbroken. I’d like to thank all participants and partners for their questions and feedback, Kenneth R. Christiansen for his help on my first W3C spec contributions, and all of you for this amazing year of PWA.