PWA, a quick definition
PWA “Progressive Web App” is a brand name that group a list of principles and web standard technologies. The goal is to make your website look like a native app. It’s actually strongly promoted by the Google Chrome team.
PWA is both desktop and mobile-friendly but was first thought of as a mobile thing to help solve the mobile web bad reputation compare to native apps.
Google official site defines PWA as Reliable, Fast, Engaging web applications. But to be more pragmatic, I prefer to say that in order to be called PWA, your website must be :
- Fast: page load fast (especially on mobile).
- Secure: use https everywhere.
- Installable: can be easily added to the device home screen.
- Work offline: if the user has no internet the site must at least display a custom offline message.
A guideline has been created by the Google Chrome team. You must follow this guideline in order to get your PWA badge.
For none developer, the easiest way to check if your website is PWA friendly is to use the google lighthouse official extension. Lighthouse is a tool to check the quality of your site. So Run the report and go to the PWA category to see if your site passes the PWA test, the badge must look like this one.
PWA Optional functionalities
To fill the gap between website and native app there is also another web technology that can be used in your PWA like push notification, Web payment, Web RTC, device orientation …
But note those technologies are not required to get the PWA badge.
Even if it’s base on web standard, PWA is until now not support officially by all browsers. IOS devices required custom implementation and the user experience to install the app to the home screen is not as smooth as an Android browser one.
PWA IS THE FUTURE! maybe…
Also for the user perspective, it can also create annoying UX problems. As the risk of permission requests hell, if all the sites you are visiting start asking you to add their sites on your home screen it will be a real problem.
Those are things promoters of the Progressive Web App must solve in order to make the Web better instead of making it worse.