Applications web progressives (PWA) : où en sommes-nous aujourd’hui ?
Annoncée par Apple lors de sa conférence WWDC en juin 2022, la possibilité pour les applications web sur Safari d’envoyer des notifications push est enfin arrivée en mars dernier avec la version 16.4 d’iOS et d’iPadOS. Cette nouveauté très attendue par les développeurs est une bonne occasion de refaire le point sur les applications web progressives (Progressive Web Apps, PWA) et de voir si les notifications push leur ouvrent de nouveaux horizons sur iPhone et iPad.
Tout d’abord, un peu d’histoire : les applications web progressives ont été introduites pour la première fois par Google en 2015 afin de répondre aux besoins des développeurs web qui cherchaient à offrir une expérience utilisateur (UX) plus riche et plus immersive, capable de se comparer avec celle offerte par les applications natives. Un concept clé des PWA est de permettre une expérience toujours optimale, quels que soient la qualité de la connectivité réseau, le navigateur, la plateforme matérielle, etc. L’application s’adapte aux conditions matérielles et logicielles qu’on lui offre, ce que recouvre le terme “progressif”.
La technologie progressive repose essentiellement sur les Service Workers, qui sont des fichiers JavaScript dont la tâche principale est de permettre une gestion de la mise en cache selon une granularité très fine, notamment pour permettre des fonctionnalités hors ligne. Les SW fonctionnent de manière asynchrone, dans une tâche différente de celle du script principal. Ils peuvent aussi être utilisés pour gérer la synchronisation de données en arrière-plan, la centralisation des mises à jour de données comme celles issues du GPS ou du gyroscope, le préchargement de certaines ressources dont on est à peu près sûr que l’utilisateur aura besoin par la suite, etc.
Chez Spiria, il arrive fréquemment que nos clients les plus informés nous demandent si une PWA serait la solution pour répondre à leurs besoins de développement mobile à un moindre coût. En tant qu’expert en solutions numériques, ma réponse est que c’est certes une option bien moins coûteuse à développer que deux applications natives (iOS + Android). Mais jusqu’à présent, lorsque l’on ciblait la plateforme Apple, on excluait rapidement l’option PWA en raison de l’absence de notifications push. Maintenant que cette embarrassante restriction est levée, faisons un tour d’horizon actualisé de ses limitations et possibilités.
Les limitations des PWA
Soyons clairs, les PWA ont été créés par Google. Elles ne souffrent donc que de peu de problèmes sur Android, mais voici les 3 plus importantes limitations communes aux deux plateformes mobiles.
- Dépendance au navigateur : qui dit application web, dit navigateur. Nous sommes donc tributaires de leurs fonctionnalités (et de leurs bogues !). Sur iOS, le développeur est contraint d’utiliser le WebKit de Safari, ce qui n’est pas l’outil le plus riche en fonctionnalités.
- Accès au matériel : une PWA ne peut pas accéder pleinement à toutes les ressources matérielles et logicielles du téléphone. Parmi les plus importantes, on trouve les contacts, le calendrier et les fonctionnalités d’appel (interception de messages texte, appels vocaux, envoyer des messages texte).
- JavaScript : il faut garder en mémoire que c’est une application web, c’est-à-dire du HTML, du CSS et beaucoup de JavaScript. Quel est le problème ici ? Ça veut dire un langage à simple fil d’exécution (simple thread) qui offrira moins de performance qu’une application native et qui aura un impact tant sur la consommation de batterie que sur l’expérience utilisateur.
Quand on parle de limitation des PWA, on ne peut pas passer à côté des limitations spécifiques à iOS/iPadOS. Voici donc les 3 plus importantes selon nous, maintenant que les notifications push sont possibles :
- Safari/WebKit uniquement : c’est le seul navigateur qui est autorisé à supporter les PWA sur iOS, et il a des fonctionnalités limitées et des bogues spécifiques.
- Limitation à 50 Mo : sur Android, tant que le téléphone a de la place, on peut installer l’application, quelle que soit sa taille. Sur iOS, il y a une limite fixée à 50 Mo pour le stockage de données. Cela restreint la possibilité de développer une application de grande envergure et oblige à un développement le plus efficace et optimisé possible.
- Pas de présence sur l’App Store : il n’y a pas d’installation possible via l’App Store, ce qui peut représenter un gros manque de visibilité pour les marques.
Les avantages des PWA
Parlons maintenant de leurs 3 plus importants avantages :
- Coûts de développement : c’est la plus importante des promesses des PWA, une seule base de code pour toutes les plateformes (appareils mobiles, tablettes, ordinateurs portables et de bureau), ce qui réduit très considérablement les coûts.
- Toujours à jour : c’est le bénéfice des applications web. Les utilisateurs n’ont pas à faire de mises à jour ; vous n’avez pas d’utilisateurs qui sont sur d’anciennes versions.
- Statistiques d’usage : un point important est qu’on peut utiliser tous les outils marketing et statistiques pour analyser les données utilisateur et suivre la vie de notre application.
On synthétise tout cela dans une matrice FFOM (Forces, Faiblesses, Opportunités, Menaces) :
Pour conclure, quand on se demande dans quel cas préconiser une PWA, nous regardons si elle répond aux points suivants : un budget très limité, une petite application comme un PMV (produit minimum viable) par exemple, un nombre d’utilisateurs restreint, des fonctionnalités simples (pas d’utilisation de fonctionnalités d’appel ou de la caméra par exemple). Somme toute, leur champ d’application demeure assez limité.