# Progressive web app

Une progressive web app (PWA, application web progressive en français) est une application web qui consiste en des pages ou des sites web, et qui peuvent apparaître à l'utilisateur de la même manière que les applications natives ou les applications mobiles. Ce type d'applications tente de combiner les fonctionnalités offertes par la plupart des navigateurs modernes avec les avantages de l'expérience offerte par les appareils mobiles$^,$.
Une PWA se consulte comme un site web classique, depuis une URL sécurisée mais permet une expérience utilisateur similaire à celle d'une application mobile, sans les contraintes de cette dernière (soumission aux App-Stores, utilisation importante de la mémoire de l'appareil…).
Elles proposent de conjuguer rapidité, fluidité et légèreté tout en permettant de limiter considérablement les coûts de développement : plus besoin de faire des développements spécifiques pour les applications en fonction de chacune des plateformes : iOS, Android…

## Historique

Durant les années 2000, les technologies du web sont progressivement passées de documents statiques (HTML) à des solutions dynamiques exécutées côté serveur avec des langages tels que PHP. Lors de l’arrivée des smartphones en 2007, les technologies du web ne sont plus adaptées face à l'augmentation de l'utilisation des applications mobiles. Ces dernières offrent une bien meilleure expérience utilisateur. Les ressources enpaquetées et l'accès direct aux fonctions du téléphone ont permis aux applications natives d’être plus utilisées que les technologies web mobiles.
Au milieu des années 2010, cependant, les améliorations continues en HTML5, CSS3 et JavaScript ainsi que des navigateurs web plus performants et conformes aux normes, ont fait des applications hybrides performantes une alternative viable.
En 2015, Frances Berriman et l’ingénieur de Google Alex Russell proposent le terme de "progressive web apps" pour décrire les sites Internet profitant des nouveaux avantages donnés par les navigateurs web notamment avec l’arrivée des Service workers (en) et des fichiers manifestes (en).

## Caractéristiques des PWA

Google a mis en place une liste de contrôles établissant une note via l’outil Lighthouse intégré dans le navigateur chrome qui permet de vérifier automatiquement le respect des caractéristiques suivantes :

### Progressive

    les applications web progressives fonctionnent sur n'importe quel périphérique en intégrant les fonctionnalités disponibles du navigateur et de l'appareil utilisé.

### Sécurisée

    Afin de répondre aux problématiques de sécurité des échanges entre les utilisateurs et les sites, les PWA doivent être fiables et sûres par la mise en place d’un protocole HTTPS.

### Engageante

    elles proposent une expérience utilisateur immersive en plein écran et un réengagement facilité grâce à l'envoi de notifications push web.

### Installable

    l'utilisation d'un fichier manifest permet aux PWA de proposer, à l'instar d'une application mobile native, l'installation d'un raccourci sur l'écran d'accueil du terminal mobile.

### Rapidité

    d'après Google, 53 % des internautes abandonnent un site si le chargement prend plus de trois secondes. Une fois le site chargé, la navigation doit se faire de manière rapide et fluide.

### Optimisation pour le référencement

    utilisant les technologies du web, les progressive web app peuvent être référencées sur les moteurs de recherche de la même manière que n'importe quel site web classique.

### Indépendante de la connexion

    Grâce à la gestion du cache via l’utilisation d’un Service Worker, une fois le contenu chargé une première fois, il est possible de le consulter même dans les zones de faible connexion réseau.