L’équipe de My.News ™ a pris le parti de ne pas développer 2 applications natives, mais de se lancer dans l’exploration de cette nouvelle technologie émergente, la progressive webapp.

Nous allons ici détailler les problèmes rencontrés lors du développement de cette application, ainsi que les points positifs qui nous ont poussé à sélectionner, avec notre client, ce choix technique.

Fais-moi rêver

Une progressive webapp (à laquelle nous nous réfèrerons dorénavant par PWA), n’est rien de plus qu’un site web, pensé « mobile first » intégrant 2 éléments différenciants :

  • Un manifest
  • Un service worker

Un site camouflé

Le manifest va nous permettre, entre autres, de stipuler l’apparence de notre web application afin qu’elle ressemble, à l’usage, à une application native.

Ainsi, alors qu’en pratique, notre site est bel et bien lancé dans un navigateur (Chrome, Safari, et Firefox, supportent ce format), l’illusion est totale. Fini les bordures et les barres de recherches propres à chaque navigateur, et fini les raccourcis non personnalisables. L’utilisateur verra le logo de notre application mêlé à sa liste d’applications favorites.

« J’ai plus internet, je fais quoi ? »

Le service worker, lui, sert un tout autre but, continuer à parcourir le contenu de notre application hors ligne.

Sorcellerie me direz-vous. Et bien non, un système de mise en cache conformément à une série de règles stipulées dans le fichier de configuration du service worker va permettre de servir le site avec uniquement du contenu rapatrié en local.

Ainsi, il est possible de demander à notre application de rapatrier dès que possible, tous les éléments graphiques (images, fonts, etc) nécessaires à la navigation de base. Mais surtout, le service worker va nous permettre de mettre en cache le contenu d’appels API distants.

Raoul vs internet

Prenons l’exemple de Raoul, utilisateur de My.News, voyageant en RER tous les matins. Au lancement de l’application, l’application détecte la présence d’une connexion, et va donc dérouler les règles du service worker : appeler les routes permettant de récupérer les 20 premiers articles, ainsi que le contenu de la newsletter du jour.

Il n’aura fallu à Raoul que le temps de se loguer, alors que son train passe dans un souterrain, et que sa connexion disparait. Alors, un bandeau apparait : « Votre connexion a disparu » et Raoul peut maintenant naviguer dans le cadre des données qui ont été rappatriées. Selon la politique temporelle stipulée dans le service worker, Raoul pourrait ne pas récupérer de connexion pendant des semaines, et toujours naviguer dans son application, au contenu périmé certes, mais l’expérience utilisateur reste intacte.

OK, je la télécharge où ton application ?

Voilà la beauté de la chose, le point culminant de l’émergence, pas besoin de passer par un quelconque store ou exécutable pour ajouter la PWA sur mon bureau. Il suffit de se connecter au site web, et un bandeau proposera à l’utilisateur de rajouter l’application à sa liste personnelle.

Et voilà, en un clic, le travail est fait, un rêve pour l’utilisateur.

Trop émergent pour IOS

Parfois l’émergence a du bon, d’autres fois, faut pas pousser.

En effet, Apple, réticent à l’idée qu’une application puisse ne pas passer par leur processus de validation, et par un téléchargement via leur store, n’offre pas toutes les facilités aux développeurs de PWA.

Parmi ces difficultés, nous en noterons 2 essentielles :

  • Sur IOS, une PWA ne peut tourner que sur safari
  • Safari sur IOS ne supporte pas les push notifications

Le problème des push notifications semblerait être dans la roadmap d’Apple pour les prochaines versions d’IOS, mais aucun changement n’a été constaté à ce jour.

Alors, finalement, c’est mieux qu’une application native ?

En tout cas, c’est moins coûteux, plus accessible, et moins compliqué à maintenir. Maintenant, il appartient à chacun de peser le pour et le contre entre la facilitée de développement, et les contraintes posées à ce jour par la technologie. Par exemple, l’accès à certaines ressources du téléphone (calendrier, sms, espace disque étendu etc …) sont encore impossible, limité par les accès que peut avoir le navigateur d’un smartphone.

Il est sûr que les PWA ont encore de beaux jours devant elles, et que nous assisterons peut être dans le futur à une généralisation de celles-ci dans nos catalogues d’application, alors que la technologie continuera d’évoluer.