PWAs is definitely one of the most exciting technologies to emerge in recent times in Web Development. Technologically speaking, PWAs are web apps enhanced with modern web technologies (Service Worker, Cache API, Push notifications, Web App Manifest) to provide a more app-like experience.

PWAs are installable on mobile devices

They’re pure web applications built with the very web technologies (HTML, JS & CSS) but they can be installed to mobile, tablet, Smart TV, etc. through a browser provided prompt, meaning you can have a link on your home screen to launch the app right away making it easier to access. And they work in all web browsers.

Example of mobile devices
Example: Twitter Lite Mobile

PWAs added to the home screen now show up anywhere you’d expect an app to show up; this includes the app launcher, task switcher and system settings.

Example of mobile devices
Twitter and Twitter Lite

All web applications that provides a valid manifest.json file in their index.html are installable, the format is described in MDN.

PWAs feel like a native app

Users don’t care about whether a technology is native, an installed web app or a website, what makes users engage is the experience itself. The installed PWA opens in full screen mode and it will look and act like any other app, even push notifications appear as if they come from a native app.

Twitter in mobile
Native app

 

PWAs are reliable & faster

They should work even if the network is poor or is unavailable to avoid typical ‘There is no Internet connection’ screen in traditional web apps.

To avoid this happening to end users Service Workers are used to cache the application, provide offline access to cached content and performance on par with natively-installed code. A Service Worker is essentially a JavaScript file that runs separately from the main browser thread, intercepting network requests, caching or retrieving resources from the cache and delivering push messages.

PWAs are developer friendly and easy to update

A PWA is basically a website, so you can write them with any framework you want and address any device (desktop, mobile, tablet, Smart TV…).

Unlike a “packaged” web app experience, PWAs are hosted on your servers and can be updated without issuing new updates to an app store. Not being in the app store means you don’t need the Apple or Google approval to be in the users pockets and you can release updates when you want.

As a web app some native functions are still not supported, and push notifications aren’t supported on iOS yet. For more information, see this page What web can do. Web apps are getting better and better, and with the recent improved support for PWAs in iOS and Windows we can now make a Progressive Web App and ship it to Android, iOS, Windows and Chrome OS, plus working in any modern web browser.

 

Written by: Daniel Macho.