Les PWA sont des applications web dites progressives car elles vont s’enrichir petit à petit de fonctionnalités
PWA = Application Progressive
Le concept d’Applications Progressives vient du fait qu’une PWA est une application que l’on va enrichir peu à peu de fonctionnalités.
Ainsi, une application web va pouvoir se transformer en PWA de manière progressive. Chaque brique ajoutée se fera sans rupture avec l’existant et cela permettra aussi une compatibilité navigateur accrue.
Si un navigateur ne possède pas la brique souhaitée, alors elle ne sera juste pas présente et ne remettra pas en cause pour autant le fonctionnement de votre application.
Il est donc important de retenir qu’une PWA est une application web classique à laquelle on ajoute de fonctionnalités “hors-ligne”, “installabilité” de façon séquentielle sans toucher au reste de l’application.
Le Hors-Ligne (offline) pour une PWA
L’objectif d’une PWA est de se raprocher du comportement d’une application native. Pour cela, elle doit fonctionner même dans une situation Hors-Ligne.
La situation “Hors-Ligne” peut arriver quand votre téléphone (ou appareil) est en mode avion, ou quand vous ne captez pas de réseau. L’application doit être en mesure de vous afficher un contenu contenu dans un “cache”.
Pour qu’une PWA puisse fonctionner en mode Hors-Ligne", il faut utiliser ce qui s’apelle un “Service Worker”. Un Service Worker est assimilable à un proxy qui se place entre votre site web et le réseau externe. Ce proxy possède un cache qu’il peut utiliser pour vous servir plus rapidement des ressources.
L’installation d’une PWA
Pour installer une PWA, il faut en premier lieu avoir mis en place un Service Worker (cf paragraphe précédent). Ensuite, il faut ajouter à son site un fichier de méta-data nommé App Manifest.
Les PWA étant pensées pour fonctionner en mode Hors-Ligne. Il est logique qu’une PWA ne puisse pas être installée si elle ne possède pas de Service Worker. Cela n’aurait pas de sens de lancer une application impacable de démarrer si l’utilisateur n’a pas de réseau (au sens affichage basique).
L’App Manifest est un fichier au format json qui décrit des informations basiques tel que son nom, son icône, …
L’engagement avec une PWA
L’engagement avec les PWA ne peut se faire que si un Service Worker est en place.
L’engagement se fait en utilisant le mécanisme de push notification disponible sur Android et sur Desktop.
L’appareil s’enregistre auprès d’un service de notification. Il envoie ensuite à son serveur l’identifiant de la machine auprès du service de notification. Plus tard, le serveur solicitera le service de notification avec l’identifiant. Pour terminer le service de notification “réveillera” le Service Worker.
L’engagement pour les PWA est disponible sur les plateformes Android, Desktop.
PWA : à la base un terme créé par Google
Le sigle PWA est apparu en 2015 quand il a été imaginé par Frances Berriman (développeuse front-end / designer) et son mari Alex Russell (ingénieur chez google travaillant sur le navigateur Chrome).
Le terme est donc soumis à quelques contreverses cependant les concepts qu’il apporte sont adoptés par tous. Apple parle de “HTML5 apps” ou “Homescreen webapps”. Les concepts au coeur des PWA restent eux motivés par des concepts qui vont au dela de cet accronyme. Au point, que même Google communique aujourd’hui sur le terme F.I.R.E. (Fast/Integrated/Reliable/Engaging) dans sa documentation officielle des PWAs.
Le terme perce malgré tout aujourd’hui au sein de la communauté et englobe une vision plus large de modernisation de son application web.