I have recently spent some time investigating the current state of Progressive Web Apps (PWA). Some of you may be wondering what hides behind yet another buzzword originally proposed by Google in 2015? This is an umbrella term for certain technologies that go together to produce an app-like experience on the web. This is how it is advertised by Google on their landing page:
A new way to deliver amazing user experiences on the web.
Progressive Web Apps are user experiences that have the reach of the web, and are:
- Reliable – Load instantly and never show the downasaur, even in uncertain network conditions.
- Fast – Respond quickly to user interactions with silky smooth animations and no janky scrolling.
- Engaging – Feel like a natural app on the device, with an immersive user experience.
There are already plenty of companies adopting PWA. The following image highlights some of them:
It comes from the talk Building Progressive Web Apps today which Thao Tran gave at Chrome Dev Summit 2016 earlier this month. I recommend watching this video as it gives a good overview how quickly this concept is getting widely adopted.
The idea of users being able to immediately start using app is getting lots of attention in the recent months. This is only a small subset of articles I stumbled upon in the last few weeks touching this topic:
- The Building Blocks Of Progressive Web Apps
- Why does The Washington Post’s Progressive Web App increase engagement on iOS?
- iOS doesn’t support Progressive Web Apps, so what?
There are also very extensive series explaining in depth technical details of Progressive Web Apps integration. Addy Osmani describes how this concept can be incorporated in the React applications:
- Part 1 – Introduction
- Part 2 – Page load performance
- Part 3 – Offline support and network resilience
- Part 4 – Progressive Enhancement
- Part 5 – coming soon …
Jan Lehnardt goes beyond PWA in his three part series and covers related concerns like handling data synchronization:
Tools and Libraries
There is also growing number of tools and libraries that helps to integrate PWA concepts in your application:
- Lighthouse – auditing and performance metrics for Progressive Web Apps.
- Service Worker Toolbox – a helpful library with account for a lot of different caching use-cases.
- Service Worker Precache – a tool to pre-emptively cache all static resources for offline use.
Finally, I recommend checking the definitive collection of resources from Opera blog if you would like to get to know more about Progressive Web Apps.