What is Progressive Web App?
Recently I was asked to do a research on Progressive Web Apps. I must say I was really keen on it as PWAs started to gain a lot of attention last time. In a short description – Progressive Web Apps are normal web applications hosted with additional configuration (manifest.json file) taking full advantage of modern web browsers features:
- caching – allowing to provide offline availability of the app,
- push notifications – allows to display native notifications & push messages on user device,
- background syncing – execute calls to remote resources after internet connection is reconnected,
- Web App Install Banners – mobile browsers (eg. Chrome for Android) can recognize PWA and offer to install is just like a normal mobile app!
- customization options – define app icons and theme color visible in browser or app switcher.
That sounds great! However, not all of modern browsers support this technology or some of above features at the moment. That’s the biggest drawback of Progressive Web Apps. Luckily, things are about to get better in future as the most important browser-makers are working on PWA support. You can track the status of web app manifest and service worker implementation.
Why do I need progressive app?
The answer is simple – because it’s a promise of getting so much with ridiculously small effort – in practice every https-hosted web app can be easily turned into PWA. You only need to include web app manifest and service worker registration (you can learn more about service workers here). This modification won’t change your apps behavior running on old browsers. In exchange you get:
- Possibility to install your app on some devices,
- Offline mode with background syncing,
- Device media sources access, eg. camera or microphone,
- Access to natively-supported features, eg. notifications,
In future Progressive Web Apps may get rid of the necessity of developing simple native applications. That would dramatically reduce mobile apps development costs – imagine you don’t have to develop & maintain apps in different programming languages, you just need your preferable web development stack. And as Microsoft has some big plans for PWAs, you can expect PWAs will be available not only on Edge, but also Windows Store.
There are a lot of articles and courses teaching how to build PWA. I may especially recommend Max Schwartzmuller’s PWA course available on Udemy.com. To support you Microsoft went even further and provided PWA Builder – a tool supporting PWA development.