Une application web progressive (PWA) est un site web doté de fonctionnalités lui permettant de se comporter comme une application installée : elle peut être ajoutée à l’écran d’accueil d’un appareil, lancée sans navigateur, fonctionner hors ligne ou avec une connexion instable, et recevoir des notifications push dans les environnements compatibles. Il s’agit d’un ensemble de fonctionnalités appliquées à un site web classique plutôt que d’une technologie distincte.
Les fondements techniques reposent sur un service worker, un script s'exécutant indépendamment de la page et capable d'intercepter les requêtes réseau et de fournir des réponses mises en cache, ainsi que sur un manifeste d'application web décrivant l'apparence de l'application une fois installée. Ces deux éléments nécessitent une connexion sécurisée. De plus, les fonctionnalités sont déployées progressivement : un navigateur compatible offre une expérience améliorée, tandis que les autres navigateurs accèdent au site web classique.
La gestion des connexions hors ligne et instables est la fonctionnalité qui présente la plus grande valeur pratique. Un service worker peut mettre en cache l'interface de l'application et le contenu précédemment consulté ; ainsi, un visiteur disposant d'une connexion mobile intermittente voit le contenu plutôt qu'une page d'erreur, et lors d'une visite ultérieure, le contenu est chargé depuis le cache plutôt que depuis le réseau. Pour les utilisateurs ayant une connexion faible, il s'agit d'une amélioration substantielle et non d'un simple perfectionnement.
L'installation élimine les contraintes de la distribution via les plateformes de téléchargement d'applications, ce qui constitue son principal argument commercial. Il n'y a ni procédure de soumission, ni délai de validation, ni commission de la plateforme, et les mises à jour sont déployées instantanément, sans attendre l'installation par les utilisateurs. Pour les entreprises dont l'application ne nécessite pas une intégration poussée avec la plateforme, cela représente un gain considérable en termes de coûts récurrents et de dépendance vis-à-vis des administrateurs de plateformes.
Les différences de capacités entre les plateformes demeurent la principale limitation, et leur réduction est inégale. La prise en charge de l'installation, des notifications et des fonctionnalités en arrière-plan varie d'une plateforme à l'autre, iOS étant historiquement plus restrictif qu'Android. De plus, les limites de stockage et les politiques de suppression diffèrent. Il est donc essentiel d'évaluer les fonctionnalités réellement disponibles sur les plateformes utilisées par le public cible, plutôt que de supposer une parité, avant d'adopter une approche reposant sur une capacité particulière.
La visibilité implique un véritable compromis. La distribution web permet d'accéder à l'application par lien et de la trouver via les moteurs de recherche, ce qui représente un avantage considérable par rapport à la distribution via les boutiques d'applications, où la visibilité dépend du classement au sein de ces boutiques. En revanche, l'application n'apparaît pas dans les boutiques d'applications où de nombreux utilisateurs recherchent des applications, et il n'y a pas d'équivalent à l'invite d'installation proposée par une fiche produit.
Les notifications push méritent une évaluation plus nuancée qu'on ne le fait habituellement. Si cette fonctionnalité est réellement utile pour les messages urgents et personnalisés, elle est largement détournée de son usage initial pour diffuser des contenus promotionnels non sollicités. Le fait que l'autorisation soit demandée une seule fois et que le refus soit irrévocable implique que demander l'autorisation avant même d'avoir démontré la valeur ajoutée du message entraîne systématiquement des refus irrévocables, même lorsqu'un message pertinent est envoyé.
La mise en cache par service worker comporte des risques spécifiques qui nécessitent une gestion rigoureuse. Une stratégie de cache qui diffuse indéfiniment du contenu obsolète expose les utilisateurs à des informations périmées sans possibilité évidente de les actualiser. De plus, un service worker mal déployé peut s'avérer difficile à supprimer des appareils sur lesquels il est déjà installé. Le versionnage, les stratégies de mise à jour et un mécanisme de forçage de l'actualisation sont donc indispensables.
L'approche englobant l'architecture frontale, la stratégie de mise en cache et les décisions de distribution, il s'agit d'un choix produit plutôt que technique. En pratique, les fonctionnalités sont choisies au sein de l'entreprise. le développement de produits par rapport aux besoins réels du public, les implications en matière de mise en cache et de diffusion se situent au niveau de performances web Le travail et le compromis en matière de découverte entre la distribution en ligne et en magasin sont généralement évalués en parallèle avec la stratégie de distribution globale dans planification stratégique et conseil.