Progressive Web Apps – what are they and why do you need one?

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:

  • service worker – a javascript code working in the background even after closing tab or entire browser, allowing to implement other 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!
  • instant notifications – sent directly from running app through javascript,
  • 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,
  • Easy-to-develop stack – the most basic Progressive Web App can be built by 1 html page, 1 json manifest file and 2 javascripts!

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.

Acknowledging PWAs

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.

2 comments

  1. Until we can’t create PWA for iOS this technology is nothing more than other way to do Android apps. Why should we do PWA if we can do native Android apps?

Leave a Reply

Your email address will not be published. Required fields are marked *