Application web progressive ou "PWA", qu'est-ce que c'est?

Lors du développement d’une application pour différentes plateformes, l’une des premières décisions de conception est le choix entre développer des applications natives ou une web app. Les deux ont leurs avantages et leurs inconvénients, il existe cependant une troisième option.
Demander un devis gratuit

Natif vs Web

 

Les applications natives offrent une meilleure expérience utilisateur car elles s’intègrent mieux dans leur environnement et grâce aux fonctionnalités qu’elles peuvent proposer. Par contre, il faut souvent développer une nouvelle application pour chaque plateforme qu’on veut supporter dans le langage natif avec les outils appropriés et il faut déployer l’app dans le store de la plateforme. Cela requiert aussi de l’utilisateur qu’il maintienne à jour manuellement l’application.

Les web app ont un coût de développement plus faible, un code suffit pour toutes les plateformes et navigateurs. Par contre elles ne sont généralement pas accessibles hors-ligne et ne peuvent pas accéder aux fonctionnalités de l’appareil.

Les avantages d’une application progressive

 

Les PWA sont des applications qui visent à concilier les deux modèles.
Ces applications utilisent notamment l’architecture d’application Shell et des service workers.
Les PWA sont progressives dans plusieurs sens : elles peuvent développées de manière à être améliorés progressivement et de manière à se mettre en cache de manière progressive. Une même web app peut fonctionner sur diverses plateformes et navigateurs, un seul code fonctionne partout. Les web apps sont « responsive », indépendantes de la qualité ou de la disponibilité du réseau, sûres (grâce à HTTPS). Elles peuvent être facilement partagées via une URL, elles sont accessibles depuis une icône affichée sur l’écran d’accueil, peuvent envoyer des notifications Push et elles sont toujours à jour grâce aux service workers.
L’architecture Shell, consiste à mettre une coque (réceptacle vide) de l’application en cache et de remplir son contenu en utilisant le JavaScript. Cette coque est composée du code HTML, CSS et JavaScript minimal pour faire fonctionner l’interface utilisateur.