Une progressive web app (PWA) est un site web qui ressemble et se comporte comme s’il s’agissait d’une application mobile. Les PWA sont construites pour tirer parti des fonctionnalités natives des appareils mobiles, sans que l’utilisateur final ait à se rendre dans une boutique d’applications, à effectuer un achat et à télécharger un logiciel localement. Au lieu de cela, une PWA peut être localisée avec une requête sur un moteur de recherche et accessible immédiatement via un navigateur.
Les PWA éliminent la nécessité pour les e-commerçants de développer des applications natives pour plusieurs systèmes d’exploitation mobiles. Tout comme les vidéos YouTube, le contenu des PWA est téléchargé progressivement, ce qui offre à l’utilisateur final une meilleure expérience utilisateur qu’un site web traditionnel utilisant le responsive design. Le terme « progressive web apps » a été inventé en 2015 par la designer Frances Berriman et l’ingénieur Google Chrome, Alex Russell
Le but des PWA est d’estomper la distinction entre les apps natives et le web mobile en apportant la plupart des avantages des apps mobiles natives au navigateur mobile. Les PWA utilisent des technologies basées sur des normes et s’exécutent dans un conteneur sécurisé et accessible à tous sur le web. Elles peuvent envoyer des notifications push web, fonctionner hors ligne et être accessibles depuis l’écran d’accueil, tout comme une application mobile provenant d’un app store.
Les PWA peuvent également tirer parti des API et des plugins de navigateur pour que le déploiement et la maintenance d’un site web restent aussi simples que possible. Un autre avantage que les PWA ont hérité des sites web traditionnels est l’utilisation des URI pour indiquer l’état. Cela permet à l’application web de conserver ou de recharger son état lorsque l’utilisateur met en signet ou partage l’URL de l’application.
L’interface utilisateur d’une application web progressive doit être correctement dimensionnée pour le facteur de forme et la taille de l’écran de l’appareil. En outre, elle doit ressembler à une application native et être construite sur un modèle de coquille d’application. La PWA doit avoir peu de rafraîchissements de page, et l’application doit fonctionner dans des zones de faible connectivité ou même hors ligne. En outre, le nouveau contenu doit être mis à disposition dans l’application. Les requêtes réseau pouvant être interceptées, l’app devrait être hébergée sur HTTPS pour éviter les attaques de type man-in-the-middle ().