PWA : qu’est-ce que c’est ?

La Progressive Web App, PWA, ou encore application web progressive, on en entend beaucoup parler, parfois comme une techno qui va révolutionner les applications mobiles, d’autres elle remplacerait les sites web, et d’autres fois encore « c’est le terme à la mode ». Mais alors, qu’est-ce que c’est réellement une PWA ? On vous donne des éléments de réponse.

Une Progressive Web App, c’est quoi ?

Pour vous expliquer ce qu’est une Progressive Web App, nous allons reprendre les mots de Loïc de Saint Andrieu, Head of Digital Customer Experience chez Google :

« Le terme de PWA est plus un terme ombrelle regroupant plusieurs best practices liées à l’utilisation des dernières API web qu’une technologie en tant que telle. C’est une initiative de Google pour promouvoir le web mobile et mettre en avant le fait qu’on peut avoir des capacités aussi puissantes sur le web qu’avec une application native »

En résumé, une PWA c’est une web app qui utilise toutes les dernières bonnes pratiques du web. Pour l’utilisateur c’est la garantie d’une optimisation de l’expérience utilisateur, sur mobile bien sûr, mais sur desktop également.

Techniquement, la PWA reprend des technos déjà existantes (parfois depuis longtemps déjà) : HTML5, JavaScript, CSS3… et les Services Workers, au coeur de son fonctionnement.

Alors une Webapp, qu’est-ce que c’est ?

Une web app c’est une application web, c’est-à-dire un site web applicatif (oui, on enfonce des portes ouvertes, mais vous allez comprendre où nous voulons en venir). En effet techniquement, il n’y a pas forcément de différence entre les technologies utilisées pour un site web et une webapp. Ce qui va faire la différence, c’est l’usage, le fonctionnel !

En résumant grossièrement, on peut dire que le site web permet de consulter et la web app permet d’agir ou interagir. Par exemple, l’interface web présentant une entreprise est un site web vitrine ; alors que l’interface permettant d’utiliser leur produit, le paramétrer ou le contrôler sera un site applicatif (une web app !)

Mais si c’était si simple, ça serait simple ! Prenons l’exemple d’un site e-commerce. On l’appelle un site web et pourtant il permet de faire beaucoup plus que de consulter puisque l’on peut acheter, gérer ses bons d’achats, son compte fidélité… Pour nous (mais nous ne ferons peut-être pas l’unanimité sur ce point), un site e-commerce, c’est une application web. Il suffit d’en suivre la conception pour comprendre que toutes les bonnes pratiques de l’application y sont appliquées. Pas étonnant que certains site e-commerce, comme Etam, « remplacent » leur site e-commerce mobile par une Progressive Web App.

Les caractéristiques techniques de la PWA

Une PWA c’est une webapp :

  • Sécurisée : utilise le HTTPS
  • Rapide
  • Utilisable hors-ligne
  • Avec un ou plusieurs services workers pour faire fonctionner des tâches en arrière plan. Par exemple, sur Capsolo.io un service worker permet de calculer le hash du fichier qui sera déposé sur la blockchain, pendant que l’utilisateur poursuit sa navigation.
  • Utilisable sur les anciens navigateurs (même si elle n’est pleinement fonctionnelle que sur les plus récents)
  • Plein écran (comme une application)
  • Responsive : s’adapte aux différentes tailles d’écran

En bref, une PWA c’est une webapp pensée comme une application native -ou une application Flutter – pour optimiser l’expérience utilisateur et utilisant des technologies web : mi web app, mi application mobile.

La progressive Web App sur iOS et Android

La PWA selon Google

Voici la vision de Google sur la question :

Si vous pensez aux applications natives et aux web apps en termes de capacités et de portée, les applications natives représentent les meilleures capacités possibles, tandis que les webapps représentent la meilleure portée. Quelle est donc la place des Progressive Web Apps ? Les Progressive Web Apps (PWA) sont conçues et optimisées par l’utilisation d’API modernes pour délivrer des capacités, une fiabilité et une installabilité semblables à celles des apps natives, tout en atteignant n’importe qui, n’importe où, sur n’importe quel appareil ; avec une seule base de code. 

What are Progressive Web Apps? – Google Developers
La PWA par rapport aux performances de l'app native et de la web app

Le positionnement d’Apple

Ceux-ci s’expriment peu ou pas sur la PWA. Pour Apple, les PWA ne sont que « des applications web depuis l’écran d’accueil ». Au-delà du discours officiel, Apple limite son expansion sur iOS en n’assurant pas la compatibilité de fonctionnalités qui font la particularité des PWA

  • Pas de notification push sur iOS ;
  • Suppression des fichiers de l’application après une longue période sans utilisation ;
  • Pas d’accès  au Bluetooth, Touch ID, Face ID, ARkit… ;
  • Pas d’intégration Siri ;
  • Pas de bannière d’invitation au téléchargement et à l’ajout à l’écran d’accueil.

Pourquoi Apple freinerait-il l’expansion de la PWA sur iOS ? 

Il faut noter qu’à la sortie du 1er l’iPhone en 2007, Steve Jobs avait mis en avant les Web app 2.0, ni plus ni moins que les PWA avant l’heure. Mais à ce moment là, il n’y avait pas encore d’App Store, ni SDK natif.

Aujourd’hui en s’affranchissant du store, la PWA s’affranchit également du contrôle d’Apple. Apple ne peut donc plus garantir la sécurité et la qualité des applications téléchargées par ses utilisateurs (ni recevoir de commission via l’achat in-app). Tout l’inverse de ce qui fait l’environnement iOS aujourd’hui.

Notre avis sur la PWA

Pour nous, les propos de Google sont à nuancer, car la PWA n’atteint pas les capacités d’une app native ou Flutter en ce qui concerne :

  • L’utilisation de la couche matériel du téléphone, par exemple l’utilisation de la caméra, du bluetooth ou du scanner d’empreinte.
  • Les notifications : contrairement à Mac OS, iOS ne prend pas en charge les notifications web.

Ni la portée d’une web app, par manque de compatibilité avec :

  • IE, Edge ou Safari : les PWA fonctionnent parfaitement sur Android et Chrome, mais partiellement sur les autres navigateurs et OS.

La Progressive Web App étant poussé par Google, et Flutter pour le web étant basé sur les principes de la PWA ; on comprend que le schéma de Google soit un peu moins nuancé que notre avis.

Malgré les nombreuses qualités de la PWA, tant que les limitations restent importantes sur iOS – et nous croyons qu’Apple risque de perdurer dans cette direction – sa propagation risque d’être limitée. Comme toutes les autres technologies, la PWA est donc la technologie parfaite pour certains projets, mais pas pour d’autres !