Applications Web progressives : quelles promesses ?

Les applications Web progressives sont le nouveau phénomène du paysage des applications. Une application Web progressive allie les propriétés d’un site Web avec de nombreuses caractéristiques d’une application Web mobile. Elle doit fonctionner de la même manière sur tout système d’exploitation, en tant que site Web ou application.

Mais qu’est-ce qu’une application Web progressive et qu’est-ce qui la différencie des applications Web classiques ? Nous vous donnons un aperçu du fonctionnement d’une application Web progressive et vous permettons de différencier les différents formats d’applications. Nous expliquons par ailleurs les avantages et inconvénients d’une application Web progressive.

Qu’est-ce qu’une application Web progressive ?

Le terme d’application Web progressive caractérise une nouvelle méthode de développement d’application apportant de nombreuses nouvelles possibilités. Il s’agit en quelques sortes d’une version améliorée du format des applications Web, utilisé depuis des années déjà.

C’est principalement Google qui a permis le développement de ce nouveau format. C’est pour cette raison que les Progressive Web apps (PWA) sont jusqu’ici surtout disponibles sur le système d’exploitation de la même maison, Android. L’utilisation de telles applications sur les appareils iOS est quant à elle soumise à quelques restrictions. Cette technologie est toutefois encore précoce mais elle présente un fort potentiel. Il est fort prévisible que Google investisse dans le développement de cette technologie dans les années à venir. Une optimisation plus vaste de ces applications Web progressives est très probable pour cette raison.

Définition d’application Web progressive, partie 1 : application et site en un

Etant donné que les PWAs ne se trouvent encore qu’au milieu de leur stade de développement, seules des tentatives d’éclaircissement sont possibles pour le moment. L’échafaudage fondamental peut néanmoins être considéré comme établi. Une PWA est accessible sur Internet via une URL, simplement exécutée dans le navigateur Web, ce qui lui permet de fonctionner sur différents systèmes d’exploitation. Une telle application est disponible indépendamment de tout app store et ne nécessite aucune installation.

A la différence d’une application Web traditionnelle, une application Web progressive peut aussi être exécutée hors ligne. On peut ainsi charger l’application, même avec une faible connexion Internet, ou inexistante (une condition est de sélectionner le cache hors ligne sur votre navigateur). L’application ne se présente cependant pas souvent sous la forme d’un site Web, mais donne plutôt l’impression d’une application native. Grâce à son design responsif, elle s’adapte à toute taille d‘écran.

Définition d’application Web progressive, partie 2 : PWA vs. App native

On peut imaginer une PWA comme un site Web responsif ayant l’apparence d’une application native. L’application peut ainsi utiliser les fonctions natives d’un appareil comme la caméra, le microphone, la localisation GPS ou encore les notifications Push et les inclure dans le programme. L’application vérifie pour cela le navigateur Web utilisé, mais aussi la compatibilité de l’appareil. L’apparence et la sensation que donne une PWA sur un Smartphone ou une tablette sont similaires à celles d’une application mobile native (comportement fluide lors de l’utilisation, bons temps de réaction lors de balayages, etc.).

Ouvrir une application Web progressive en ligne présente l’avantage de toujours accéder à la dernière version du programme. A la différence d’une application native, les utilisateurs ne doivent pas se soucier de l’actualisation du programme. Dès lors qu’il y a une connexion au serveur du PWA, l’application vérifie d’elle-même les mises à jour possibles.  

Il existe d’autres avantages comme la faible quantité de travail pour le développement d’une PWA (car il s’agit d’un site fonctionnant sur tous les systèmes d’exploitation courants), les frais sont donc diminués et les bons temps de réactions des programmes et leur confort d’utilisation sont des avantages conséquents. Cela ne requiert presque pas d’espace de stockage sur l’appareil utilisé (mais dépend tout de même du volume du cache hors ligne).

Certaines fonctions mentionnées ci-dessus sont cependant déjà aussi proposées avec les applications Web classiques ainsi que par des sites Web mobiles et responsifs. Quel est donc le caractère innovant des applications Web progressives, en comparaison avec des applications Web classiques ?

Définition d’application Web progressive, partie 3 : PWA vs. App Web

Les applications Web classiques (basées sur un navigateur, sans installation nécessaire) fonctionnent déjà sur différents systèmes d’exploitation comme Android, iOS et Windows Phone. L’étendue de fonctionnalités d’une PWA s’adapte aux conditions d’utilisation. Cela signifie que toutes les fonctionnalités de l’application ne sont pas toujours compatibles avec tous les utilisateurs, leurs appareils et navigateurs Web. Elles peuvent toutefois souvent être utilisées partiellement (sous forme réduite).

A titre d’exemple : une application Web progressive sur laquelle vous pouvez télécharger des photos, doit vous demander l’autorisation de la caméra de l’appareil. Grâce à cela, les utilisateurs peuvent créer et charger des photos directement depuis l’application. Mais tous les navigateurs et appareils ne sont pas compatibles avec cette fonction pour des raisons techniques. Dès lors que l’on lance une application dans le navigateur, celle-ci vérifie si l’appareil utilisé est équipé d’une caméra et si elle est compatible avec la PWA et le navigateur utilisé. Si ce n’est pas le cas, il est impossible d’utiliser la fonction de caméra. Cela n’empêche cependant pas les autres fonctions de l’application Web de marcher. S’il y a incompatibilité avec la caméra, vous pouvez toujours essayer d’intégrer des photos depuis votre Smartphone avec la fonction de chargement sur les applications Web progressives.

On appelle ces applications Web comme applications progressives dans le sens où elles fonctionnent sur tout navigateur, mais que l’étendue de fonctionnalités s’adapte en fonction du navigateur Web et de l’appareil utilisé. Les fonctions d’une PWA se développent donc au rythme des fonctions des navigateurs et appareils utilisés.

Définition d’application Web progressive, partie 4 : PWA vs. App Hybride

En dehors de l’application Web, il existe depuis longtemps ce qu’on appelle des applications hybrides. Il s’agit d’un autre format imitant certaines caractéristiques d’applications natives tout en venant à bout de quelques-uns de leurs défauts. On peut ainsi développer une application hybride, de la même manière qu’une application Web progressive, avec un investissement réduit en termes de travail et permettant le fonctionnement avec tous les différents systèmes d’exploitation mobiles. Les applications hybrides poursuivent quant à elles une autre approche : elles s’intègrent via l’installation de l’app sur Android et iOS et imitent le mode de fonctionnement des applications natives, avec leurs lots d’avantages et d’inconvénients.

En dehors du développement qui est moins coûteux, l’intégration sur les systèmes d’exploitation est un plus non négligeable des applications hybrides. Ainsi, plus de fonctions natives aux appareils peuvent être utilisées que sur des applications Web progressives, mais cependant, toujours moins qu’avec des applications natives.

Le fait de devoir installer l’application implique des inconvénients. En effet, Il n’est pas si facile de tester le format permis par une application Web. Une telle application reste cependant dépendante de la plateforme utilisée : même si le développement d’une application native pour un système d’exploitation précis est plus rapide, cela représente en fin de compte un investissement bien plus important que de programmer une application Web progressive. En effet, lors du développement d’une PWA, aucune modification spécifique pour Android et iOS ne doit être prise en compte. C’est la compatibilité du matériel et du navigateur qui est ici prise en compte.

Arrière-plan technique d’une PWA

Une PWA s’appuie exclusivement sur des standards Web ouverts et est en principe une application Web conventionnelle, écrite via CSS et JavaScript en langage HTML. Les applications Web progressives sont extrêmement flexibles et elles adaptent toujours leurs fonctions aux conditions respectives.  Les capacités d’une PWA dépendent toujours du navigateur et de l’appareil utilisé (en partie aussi du système d’exploitation). Mais quelles technologies sont concernées ?

Service Worker

Une nouveauté parmi les applications Web progressives est l’utilisation du Service Worker, développé dans la continuité du Web Worker. Ce service Worker est exécuté en tant qu’élément JavaScript en arrière-plan du navigateur Web. Lors du premier chargement de l’application, le serveur de la PWA charge le Service Worker et essaie de l’installer. Une fois l’installation réussie, le Service Worker est disponible à chaque renouvellement de l’application et est informé de toute demande de réseau sur le domaine concerné. Cela ne fonctionne toutefois qu’avec l’utilisation d’HTTPS. Cela entraîne des risques de sécurité le cas échéant.

Le Service Worker et le Cache correspondant sont stockés sur le navigateur Internet utilisé, dans la mesure où ce dernier est compatible avec cette fonction (comme c’est le cas avec Google Chrome, Mozilla Firefox et Opera). La particularité du service Worker est qu’il permet l’utilisation d’une PWA sans connexion Internet, car les contenus sont chargés depuis la mémoire cache. Ce processus peut être massivement accéléré en stockant l’échafaudage de l’application sur la mémoire cache. Ainsi, seules les nouvelles données doivent être chargées.

Distinction entre la coquille et le contenu de l’application

Lors du développement d’une application, l’architecture de la coquille de l’application (aussi mise en place pour les applications natives) joue un rôle important. Elle permet de distinguer la coquille ou structure du contenu. L’interface utilisateur d’une application Web progressive repose sur la coquille de l’application qui est en premier lieu chargée puis représentée. Les contenus reproduits ici se comportent de manière dynamique et sont chargés sur Internet.

La coquille de l’application est enregistrée lors du premier chargement d’une PWA sur la mémoire cache du Service Worker. Le stockage de données sur le cache du service Worker présente l’avantage de réduire le temps de chargement de l’application et d‘améliorer sa performance. Les contenus sur le cache sont par ailleurs sécurisés. Un accès doit être téléchargé sur l’application au préalable (de la même manière que la coquille de l’app). Il est par conséquent possible de rendre les contenus ainsi téléchargés consultables tout en étant hors ligne.

WebAPKs

Les WebAPKs sont des serveurs sur lesquels on peut transformer le format des fichiers (vers le format APK pour Android Package) d’une application Web progressive depuis un navigateur. Grâce à cela, il possible de mieux intégrer la PWA dans le système d’exploitation, sur les appareils Android du moins.

Une PWA au format APK peut être intégrée dans un App Drawer (soit l’aperçu de toutes les applications existantes d’un appareil) et installée sur cet appareil grâce à cela comme une application Android native. Ainsi, une PWA peut utiliser encore plus de fonctions natives et de droits d’accès pour ces appareils. Un appareil Android lance par exemple une PWA après l’installation en tant que réelle application et non comme un onglet dans un navigateur.

La fonction WebAPK n‘est jusque-là que compatible avec les versions Beta de navigateurs Android et la conversion au format APK est encore très incommode. Dans sa forme actuelle, l’installation de WebAPK n’a pas encore atteint ses objectifs en termes de compatibilité. Une expansion future de cette fonction sur tous les navigateurs Web courants est pourtant réaliste. Mais les applications Web progressives se montrent pourtant déjà convaincantes, même sans installation, grâce aux possibilités de performance qu’elles présentent.

Statu quo et avenir des PWAs

Le progrès technologique concernant les navigateurs Internet et l’implantation du Service Worker ont été décisifs pour l’expansion d’une nouvelle forme d’application Web. Ces avancées technologiques permettent de développer des applications très diverses et impressionnantes, qui ne peuvent cependant profiter pleinement de leurs potentiels que si les navigateurs utilisés sont compatibles avec le Worker Service. Vous pouvez trouver de nombreux exemples d’applications Web progressives sur Google PWA Showcase et sur le site Internet pwa.rocks.

Les applications Web progressives ne sont actuellement pas en mesure de remplacer les applications natives dans tous les domaines et il en sera également ainsi à l’avenir. Les applications natives pour un système d’exploitation précis permettent toujours une utilisation optimale des capacités de l‘appareil ou des ressources du système utilisées. Mais la plupart des applications ne nécessitent pas cependant de logiciels ou de matériels spécifiques. Le format PWA est en cela intéressant pour la plupart des utilisations.  

De nombreux avantages des applications Web progressives sont évidents, non seulement pour les développeurs, mais aussi pour les utilisateurs qui fondent de grands espoirs sur le format PWA. Peu d’applications de ce genre se sont largement répandus, mais cela est en bonne voie pour la suite.

Aperçu des forces et faiblesses

Le tableau ci-dessous prend en compte les aspects de programmation, mais aussi l’utilisation de ces PWA.

Advantages Inconvénients
La programmation de PWA nécessite beaucoup moins de temps et d’argent que le développement d’applications mobiles natives. Une PWA permet en plus le développement d’un site Web traditionnel en même temps qu’une application compatible avec tout type de plateforme. Le format PWA et sa compatibilité (mobile) avec les navigateurs et systèmes d’exploitation sont encore en cours de développement. Les perspectives futures de compatibilité avec les fonctions des différents appareils sont encore peu claires.
Les PWA sont immédiatement disponibles depuis un navigateur Web : vous ne devez ni télécharger de logiciel ni en installer. Cela présente de plus l’avantage de pouvoir essayer des PWA sans engagement aucun. Elles peuvent être installées via WebAPKs afin de mieux être intégrées au système d’exploitation. Tous les navigateurs ne permettent pas une utilisation totale des fonctions de PWA. Cela dépend en grande partie si les appareils iOS sont compatibles avec cette technologie. Les WebAPKs représentent donc une technologie expérimentale à l’avenir incertain.
Les PWA peuvent déjà sporadiquement accéder aux fonctions natives d’un appareil (notifications push, géolocalisation, caméra, microphone, expérience tactile, détecteur de mouvement, gyroscopes ou accéléromètres). L’utilisation de toutes les fonctions natives d’un appareil n’est pas possible (il manque l‘accès aux contacts, Bluetooth ou NFC). Même si les PWA devraient mieux s’intégrer aux systèmes d’exploitation des appareils utilisés grâce à une meilleure compatibilité navigateur, elles ne devraient jamais vraiment proposer des fonctions natives comme le font des applications natives.
Pas de téléchargement ni de mises à jour obligatoires. L’application s’actualise automatiquement lors de son chargement, tant que vous êtes en ligne. Les PWA peuvent toutefois être utilisées aussi sans connexion Internet. On ne sait pas si les PWA vont s’imposer sur le marché. Toutefois, rien n’est perdu avec Google portant en grande partie ce projet. Il s’agit par ailleurs d’un format à la technologie publique, doté de nombreux porte-parole influents.
Les PWA ne nécessitent presque pas d’espace de stockage et moins de ressources que des applications mobiles natives mais proposent tout de même d’aussi bonnes performances. Pas d’intégration classique dans l’App Drawer de l’appareil.
Les PWA peuvent être trouvées depuis un moteur de recherche et être la cible de liens sur le Web. Elles sont indépendantes des écosystèmes fermés des différents app-stores. Ne figure dans aucun app-store.

Les caractéristiques décrites ci-dessus posent le statu quo des possibilités en termes de performance des applications Web progressives, du moins au regard des possibilités que permettent les versions actuelles des navigateurs Web courants tels que Google Chrome, Mozilla Firefox et Opera. Quelques signes positifs annoncent une généralisation future de la compatibilité du format des PWA. Microsoft travaille ainsi sur l’intégration du Service Worker sur son navigateur Edge. Apple reste discret en ce qui concerne la compatibilité de ce format avec Safari : cette dernière n’est que peu développée. On ne peut par exemple pas utiliser de PWA en étant hors ligne avec Safari. On n’a par ailleurs que peu de chances de pouvoir intégrer une PWA dans l’App Drawer d’un appareil iOS.

Les PWA peuvent-elles s’imposer face aux apps natives ?

Les nouveaux formats d’application n’ont pas eu la vie facile par le passé : Les applications Web traditionnelles ainsi que les applications hybrides n’ont pas réussir à obtenir le même succès et la même propagation que les applications mobiles natives. Les applications Web progressives pourraient cependant connaître le succès grâce à leur structure technique ainsi qu’une forte compatibilité. La grande question est de savoir si Apple va s’ouvrir au format PWA. Ceci permettrait aux applications Web progressives de concurrencer plus fortement les applications natives dans un avenir proche.

Apple a cependant de bonnes raisons de continuer à se concentrer sur le format des applications natives et de ne pas introduire les PWA dans ses systèmes d’exploitation. L’App-store représente une grande source de revenus pour Apple et il lie les utilisateurs au service et donc à la marque. Même les données récoltées via l’App-store et les applications natives sont cruciales. Si Apple adoptait ces PWA au lieu de se limiter aux applications natives, cela libérerait les utilisateurs de leur dépendance à l’écosystème Apple. Ce couplage devrait être abandonné si les PWA se propagent et dépassent les applications natives en termes d’utilisation.

Le marché des applications Web progressives semble tout de même comporter assez de potentiel pour être rentable et populaire sans le plein soutien d’Apple. Les navigateurs les plus courants doivent afficher une meilleure compatibilité avec les PWA pour que ces dernières puissent connaître le succès. Les prochaines versions du navigateur Chrome devraient permettre une meilleure compatibilité avec les PWA ainsi qu’une intégration aisée sur Android. Hormis, Google, on compte aussi Mozilla et Opera, entre autres, parmi les défenseurs du format PWA : des efforts sont effectués pour renforcer cette compatibilité déjà existante. Les partisans des applications Web progressives sont la plupart du temps des acteurs de l’industrie des logiciels ou d’Internet, souhaitant profiter d’une technologie informatique ouverte de l’information.

Bilan : les applications Web progressives sont-elles l’avenir ?

Le terme d’application Web progressive n’est pas seulement un mot à la mode ou un concept marketing. Les développeurs d’applications entrent sur un terrain vierge d’un point de vue technique en ce qui concerne les PWA. La suite du développement des applications Web « normales » présente un potentiel révolutionnaire en soi : les applications sont progressives car elles s’adaptent aux capacités des appareils et navigateurs Web utilisés pour obtenir une meilleure performance, et plus de possibilités.

Si vous ouvrez une PWA sur un ordinateur de bureau ou un Notebook, elle se comporte comme une application Web habituelle. Mais si vous chargez une application Web depuis un Smartphone ou une tablette, l’interface ressemble à celle d’une application native. Il est possible, en fonction des caractéristiques de votre appareil mobile, que l’application recourt à des fonctions natives de l’appareil (comme la caméra, le microphone, les notifications Push ou GPS par exemple).

Les avantages des applications Web progressives sont évidents et prometteurs : vous n’avez besoin ni de télécharger ni d’installer l’application qui est automatiquement mise à jour et vous fait économiser des ressources sur votre appareil. De plus, vous pouvez l’utiliser sans connexion Internet.  L’indépendance aux différentes plateformes permet de tester une PWA en ligne avant de l’intégrer à un appareil. Le temps de réaction de l’application est un autre facteur important : les applications natives offraient jusqu‘à présent la meilleure expérience utilisateur, mais les PWA sont sur le point de s’immiscer dans cette compétition.

Du point de vue des programmeurs, le plus faible investissement en temps et en argent lors du développement d’une application pour tous types de plateformes, faisant aussi office de site internet, est un grand avantage de ce format. La nature d’une PWA joue dans cette mesure en faveur des fournisseurs d’applications, mais aussi des utilisateurs. Il manque encore un niveau suffisant de compatibilité avec les fonctions natives des appareils mobiles : au niveau fonctionnel, elles entrent seulement en compétition avec les applications natives si les applications Web progressives ont la possibilité d’accéder aux fonctions natives d’appareils mobiles.

La position d’Apple vis à vis de la compatibilité manquante du format est bien plus problématique. Les navigateurs de la plupart des fournisseurs (Google, Mozilla, Microsoft, Opera) vont quant à eux réaliser de nombreux efforts pour mettre en place une meilleure compatibilité du format PWA. Apple a au contraire moins d’intérêt dans tout cela, car ils profiteraient moins d’un format universel que de leur écosystème rendant les utilisateurs dépendants des appareils et applications natives distribués par Apple.

L’avenir nous dira si les applications Web progressives peuvent vraiment concurrencer les applications natives : les chances pour cela sont plutôt élevées grâce à des soutiens considérables.  Mais cela n’est pas certain s’il n’y a pas de compatibilité du format PWA avec les systèmes d’exploitation et navigateur d’Apple. Même si le format PWA obtient à l’avenir plus d’attention et de soutien de la part de développeurs et utilisateurs, Apple risque d’émettre toujours plus de réserve quant à l’adoption de ce format.