Qu'est ce qu'une PWA ?
Les progressives web apps (PWA) sont des applications web conçues et développées avec un ensemble de méthodes et techniques modernes qui leur permettent d'approcher fortement les performances des applications mobiles natives tout en restant exécutées sur n'importe quel navigateur web.
Quelles sont les caractéristiques techniques d'une progressive wep app ?
Oui, la définition d'une pwa est un peu floue alors, concrêtement, quelles sont les caractéristiques techniques nécessaires pour dire qu'on a affaire à une PWA ?
Et bien une progressive web apps est une application web conçue et développée de façon :
- - à être rapide : par l’implémentation d’un rendu côté serveur (SSR) qui donne une réactivité exceptionnelle à l’application qui approche une une application mobile native.
- - à pouvoir gérer les déconnexions : pour une utilisation dans les transports ou dans les endroits à faible connexion, l’implémentation de stockage local via un service worker permettrait d’offrir hors ligne certains services. Les données sont ensuite envoyées au serveur quand la reconnexion a lieu.
- - à pouvoir afficher des notifications push : les notifications push améliorent l’engagement des utilisateurs
- - à être accessible avec un shortcut depuis l’écran d’accueil du mobile
- - à être un site web, référencé sur les moteurs de recherches et ne nécessitant aucune installation sur le terminal qui l'exécute.
- - à fonctionner aussi sur les anciens navigateurs qui ne supportent pas les dernières fonctionnalités (services workers, local storage par exemple)
- - à fonctionner uniquement sur le protocole sécurisé https.
Un exemple de PWA ?
L'exemple le plus intéressant d'une progressive web app est l'application développée par Twitter : si vous vous connectez sur mobile à https://mobile.twitter.com vous remarquerez en bas de votre écran la notification pour installer l'application sur votre écran d'accueil et vous pourrez aussi twitter hors connexion !
Quels sont les avantages d'une pwa par rapport à une application mobile native ?
Les progressives apps sont très intéressantes car elles concurrencent les applications mobiles au niveau fonctionnalités et ont un coût de développement, de maintenance et de déploiement bien moindre.
Ce type d’application a un comportement proche de celui des applications mobiles natives (rapidité, gestion du hors connexion, raccourci sur l’écran d’accueil, notifications) mais ne nécessitent pas le développement sous 3 OS comme une application mobile native. Elles sont donc beaucoup moins chères en développement. Côté déploiement et maintenance, les DSI ont beaucoup plus de facilité à déployer les mises à jour et c'est une solution extrêment intéressante pour les ASP ou les services Saas.
De plus la mise en ligne d’appli mobile grand public oblige de passer par un store (Apple ou Google) ce qui freine fortement le time to market. Ce n'est pas le cas avec une PWA. Les déploiements sont aussi fluidifiés. On peut travailler le référencement comme pour un site naturel et le marketing inbound devient possible.
Par contre, la manipulation du hardware du mobile ou tout simplement l’ouverture de fichiers sur le mobile sont impossibles depuis le navigateur (donc depuis une pwa apps !) même si certaines fonctionnalités sont désormais ouvertes au navigateur comme la position géographique.
Nous avons aussi constaté une limitation dans les déploiements multi versions : un client voulant faire coexister 2 versions différentes de l'application a dû adopter une solution de contournement.
Le support hétérogène des navigateurs web pour toutes ces fonctionnalités avancées est également un problème qui tend à s'annuler car de manière générale les grands acteurs du web sont en train d 'ouvrir leurs navigateurs aux progressives apps (Google en fait la promotion depuis un moment déjà et Apple récemment amélioré le support des progressive web apps sur IOS).
En résumé : une pwa est un type de web app qui vient concurrencer les applications mobiles natives de part leur coût, leur rapidité et leur flexibilité. Elles sont la solution à privilégier pour les applications web ne nécessitant pas d'accès précis au hardware : application de fidélisation, accueil de clients en magasin, application web métier ou grand public n'utilisant pas le hardware.
Notre offre de développement web
Merci à Alexander Andrews pour cette superbe photo d'illustration !