Les progressive web apps sont des application web propulsées par du Javascript, et sensées remplacer les application natives. Ainsi il est possible de développer des application en utilisation unique du HTML5, CSS et JS. Plus besoin de connaitre le Java (pour les applications Android), ou Objective-C ou Swift pour développer des applications IOS. De plus on développe une fois pour toute, ça marche dans les navigateurs, les smartphone sans avoir à développer spécifiquement pour chaque plateforme.
Comment du Javascript peut faire la même chose que les applications natives? Comment elles peuvent accéder au GPS, à la caméra, à l’accéléromètre?
Javascript en lui-même ne peut faire ça, dans le navigateur des librairies font ce travail de liaison avec le hardware, Javascript va pouvoir utiliser par exemple l’accéléromètre via ces interfaces. C’est pour ça que l’on doit attendre les version ultérieures des navigateurs pour que les fonctions hardware soient peu à peu ajoutée? Mais pour ce qui est des PWA c’est surtout le support par les navigateurs mobiles que l’on surveillera.
Les caractéristiques d’une progressive web app (PWA)
Contenu
Utilisation du Service Worker
Le service worker es un thread qui tourne en parallèle à côté du thread du navigateur, celui qui vous permet de consulter les pages web.
Cache Applicatif + Mode Offline
C’est lui qui vous permet d’avoir les données en mode Offline
Contenu indexable par Google (et autres moteurs de recherche)
Application Installable sur la smartphone avec Add to Home Screen
C’est sans doute un des aspect les plus important concernant l’engagement de l’utilisateur, le graal qu’on cherche. Ajouter sur le home screen équivaut à une installation d’une application native. Pour avoir un exemple, depuis votre smartphone, allez sur mobile.twitter.com .
Notification Push
Autre caractéristique des applications natives, la possibilité d’envoyer des notification en push, c’est à dire sans que l’usager en ai fait la demande.
Partager
Il existe une API Web Share API qui remplit les mêmes fonctions qu’un partage d’une application native.
Le Payment Request API
Sans doute une des API les plus attendues, le support natif d’une partie du processus de paiement dans le navigateur.