Aller au contenu principal
Retour au lexique

PWA

DÉVELOPPEMENT

Définition courte

Une PWA (Progressive Web App) est un site web qui se comporte comme une application mobile native — installation sur le homescreen, notifications push, fonctionnement offline, accès à la caméra et au microphone. Elle combine la portée du web (URL partagable) avec l'expérience d'une app (performance,沉浸感). Les PWA représentent+68% de visites supplémentaires vs sites mobiles classiques (Google, 2024).

Définition complète

Une PWA repose sur 3 piliers : (1) Service Worker — script qui fonctionne en arrière-plan, interceptant les requêtes réseau et permettant le cache offline, (2) Web App Manifest — fichier JSON qui définit l'apparence de l'app sur le homescreen (icône, nom, theme color), (3) HTTPS obligatoire — les Service Workers ne fonctionnent que sur HTTPS (et localhost). Une PWA bien construite peut être indistinguishable d'une app native sur mobile. Les métriques clés : Time to Install (temps avant la première installation), Engaged Sessions (sessions de +2 min après2 jours).

Pensée simple

Une PWA, c'est comme un immigrant qui a la double nationalité. Il peut entrer dans le pays par la porte principale (le web, via URL) — n'importe qui peut le trouver. Mais une fois sur place, il a tous les droits d'un citoyen (l'app native) : il peut s'installer sur le homescreen, envoyer des notifications push, et continuer à travailler même si le réseau coupe (offline). Il n'a pas besoin de passer par l'App Store (magasin d'apps) pour s'installer — vous cliquez sur « Installer » et c'est fait.

Les 3 piliers de la PWA

Service Worker et cache offline (Offline-First Architecture)

Le Service Worker est le cœur technique de la PWA. Il intercepte toutes les requêtes réseau et décide : (1) Cache First — si la ressource est en cache, la servir depuis le cache (idéal pour les assets statiques), (2) Network First — toujours essayer le réseau d'abord, fallback sur le cache (ideal pour les pages dynamiques), (3) Stale-While-Revalidate — servir le cache immédiatement, mettre à jour le cache en arrière-plan (ideal pour les news). Résultat : le site fonctionne100% offline avec le contenu previously visited. La stratégie de cache doit être définie par type de ressource.

Manifest et installation (App-Like Experience)

Le Web App Manifest (manifest.json) définit comment l'app apparaît sur le homescreen : (1) name — nom affiché sous l'icône, (2) short_name — si le nom est trop long (max 12 caractères), (3) icons — 192×192 et 512×512 (obligatoire pour l'App Store), (4) start_url — l'URL qui se lance quand on clique sur l'icône, (5) display — standalone (pas de browser chrome), (6) theme_color — la couleur de la barre de statut. Une fois le manifest en place, Chrome affiche une bannière « Ajouter à l'écran d'accueil » automatiquement.

Notifications push web (Re-engagement Channel)

Les notifications push web permettent de re-engager les utilisateurs même quand le navigateur est fermé. Mécanisme : (1) Permission — l'utilisateur accepte les notifications, (2) Subscription — le Service Worker génère un endpoint de subscription (Push API), (3) Envoi — vous envoyez une notification via un service (OneSignal, Firebase Cloud Messaging). Les notifications push PWA ont un taux de clic de 12-18% (vs3-5% pour l'email). Cependant, 60% des utilisateurs rejettent la permission à la première demande — il faut demander au bon moment (après une action positive).

Le cycle de développement PWA

  1. Audit de performance : Lighthouse PWA score target> 90. Identifier les obstacles (JavaScript bloquant, images non optimisées).
  2. Implémentation Service Worker : Choisir la stratégie de cache par type de ressource (Cache First pour les assets, Network First pour le contenu).
  3. Création du manifest : Définir les icônes (192px, 512px), les couleurs, le display mode.
  4. Test offline : Activer le mode avion et vérifier que les pages visités sont accessibles offline.
  5. Demande d'installation : Bannière « Ajouter à l'écran d'accueil » (Chrome) ou bouton custom si vous détectez un intent fort.
  6. Notifications push : Intégrer un service de push (OneSignal gratuit jusqu'à 300K subs) et définir les triggers.

Exemple concret

Un média d'actualités (800K visites/mois) a transformé son site en PWA. Avant : site mobile lent (LCP 4.2s), aucune rétention après la première visite. Après : (1) Service Worker avec Stale-While-Revalidate pour les articles, (2) Cache des10 derniers articles lus, (3) Manifest avec icône et theme color, (4) Notifications push pour les breaking news. Résultat : LCP -55% (4.2s → 1.9s), install prompt accepté par 31% des visiteurs, notifications push : taux de clic +15%,,重新 engagement rate+42%, sessions par utilisateur +2.3 pages/session.

Applications concrètes

  • Médias et actualité : Les PWA permettent la lecture offline et les notifications breaking news — rétention +40%.
  • E-commerce : PWA comme Uber Eats — fonctionne même en offline (panier en cache), notifications de suivi commande.
  • SaaS mobile : Tableaux de bord consultables offline avec resync automatique quand le réseau revient.
  • Apps métier : Applications pour les employés en entrepôt ou en livraison — fonctionnent sans connexion Internet.
  • Jeux web : Jeux légers jouables offline, notifications pour récupérer des vies ou affronter des amis.

Métriques clés

MétriqueValeur
Visites supplémentaires PWA+68% vs site mobile
Taux de clic notifications push12-18%
Acceptation install prompt31% (post-interaction)
Rejet permission notifications60% (première demande)
Réduction LCP-55% (cache offline)
Réengagement notifications+42% (sessions récurrentes)