Rester en Contact

Web apps: futur de l’Internet ou rêve inatteignable?

Technologie

Web apps: futur de l’Internet ou rêve inatteignable?

Web apps: futur de l’Internet ou rêve inatteignable?

On nous dit que les web apps sont le futur des applications, tant sur poste de travail que sur mobile. Mais avec tous les obstacles qu’il leur faudra affronter, peuvent-elles réellement réussir ?

Le web a été créé pour partager des documents statiques, mais les navigateurs d’aujourd’hui sont capables de prendre en charge des sites qui ressemblent très fortement, par leur design comme leur utilisation, aux applications que nous faisons tourner directement sur notre smartphone ou notre poste de travail.

Avançons de quelques années et le web pourrait devenir la plateforme de choix pour développer une application, plutôt qu’iOS ou Android. C’est l’un des objectifs de l’organisme de certification des standards web, le W3C, au sein de ses diverses missions de définition des technologies sur lesquelles se construit le web.

Ce que sont les web apps

Ces apps sont créées avec des technologies standardisées, conçues pour développer des sites web – à l’origine, le HTML, le CSS et le Javascript. Elles offrent une promesse : la possibilité de créer une application qui, avec un peu de bidouille pour l’adapter aux différents navigateurs et matériels, peut être distribuée sur presque n’importe quel appareil dans le monde, pourvu qu’il ait un navigateur.

De l’autre côté, les applications natives que nous utilisons sur nos smartphones et nos tablettes sont liées à un système d’exploitation spécifique. Dans des conditions normales, une application Android peut seulement tourner sur un smartphone utilisant l’OS Android, et une application iOS ne peut fonctionner que sur un iPhone ou un iPad.

La capacité du web à toucher une base d’utilisateurs potentiellement énorme – sans le coût de développement de la même application plusieurs fois pour différents systèmes d’exploitation – est ce qui doit faire des web apps le modèle dominant dans le futur, selon le W3C.

« Créer des produits et des services qui sont accessibles à travers différents types d’appareils est évidemment très important du point de vue des marchés développés, où les gens utilisent généralement plus d’un appareil, » explique Jo Rabin, en charge du groupe communautaire Core Mobile Web Platform au W3C.

« Le web a clairement l’avantage très significatif d’être totalement cross-platform. Le web est réellement l’unique plateforme viable où vous pouvez dire ‘Je vais écrire ceci en responsive design et cela va fonctionner, pour généraliser, sur n’importe quel appareil. »

« On ne peut pas dire de même des applications natives, et cela me semble être un avantage indiscutable de la plateforme web, et qui ira croissant. »

De nombreux obstacles

Le web a peut-être une base d’utilisateurs massive comme principal argument, il y a de nombreux obstacles entre les web apps et leur acceptation par le grand public comme plateforme informatique. Les web apps, aujourd’hui, ne sont pas au niveau des applications natives dans plein de domaines ; faire tourner des web apps hors ligne amoindrit l’expérience ; l’accès limité au matériel du smartphone rend des tâches simples, comme l’enregistrement de photos, plus compliquées qu’elles ne devraient l’être ; et les web apps ont en règle générale des performances inférieures à celles des applications natives.

Le W3C n’a pas d’illusion sur le travail qu’il reste à faire pour amener les technologies de navigation, pensées pour délivrer des pages statiques, au point où elles pourront servir à créer de manière efficace des web apps que les gens auront envie d’utiliser.

« Il y a des cas d’usage relativement simples que vous pouvez résoudre en utilisant les technologies web, mais pour l’instant, c’est impossible car les standards ne sont pas prêts ou n’ont pas été écrits, ou encore en raison de difficultés d’interopérabilité, » admet Rabin.

Des tâches banales, que les gens veulent pouvoir effectuer avec leur smartphone ou leur tablette – stocker des photos et des enregistrements de voix en local, enregistrer des entrées dans un calendrier ou naviguer en utilisant un téléphone – sont toujours trop difficiles à implémenter correctement dans une web app mobile, selon le W3C.

Il y a aussi un autre problème : d’un certain point de vue, la plateforme web elle-même n’est pas cohérente, en ce que la même application peut s’afficher ou se comporter différemment selon le navigateur. Il subsiste des différences dans le « mix » de technologies web implémentées par chaque navigateur de premier plan – essentiellement HTML, CSS et Javascript -, et cela oblige les développeurs à coder des bidouilles pour pallier l’absence de certaines fonctionnalités dans les navigateurs. Même quand les mêmes technologies sont présentes dans les différents navigateurs, il existe des cas de technologies différemment interprétées.

Le groupe du W3C a identifié le besoin de meilleurs logiciels, pour pousser les éditeurs de navigateurs à vérifier qu’ils ont implémenté les technologies web de la même façon. Cela doit permettre d’assurer que les pages et apps web fonctionnent de façon similaire sans obliger les développeurs à trifouiller le code.

Pour régler ces problèmes, le W3C a détaché du personnel d’assistance et des ressources au groupe communautaire, et l’a relancé sous le nom « Web and Mobile Group Interest Group ». L’objet de la nouvelle entité est de superviser les différents groupes du W3C qui définissent les spécifications des technologies web, pour que ceux-ci apportent un panel de technologies qui permettront de créer des web apps.

Il y a un grand nombre de domaines dans lesquels les web apps sont encore à la traîne, mais un travail important est fait pour accélérer le développement des technologies web.

1. Les capacités hors ligne

La première tentative de faire fonctionner les web apps hors ligne, la fonctionnalité de mise en cache de HTML 5 (appcache), a été très critiquée pour ses manques, et a surtout développé la créativité de blogueurs comme celui d’Alistapart qui titrait récemment « Application Cache est un connard ».

La spécification comportait plusieurs fonctionnalités apparemment très contre-intuitives, comme l’absence de rechargement automatique du contenu une fois les données mises en cache, même quand l’utilisateur revient en ligne. Jake Archibald, un développeur et promoteur de Google Chrome, et auteur de l’article, estimait que appcache est construit sur un certain nombre d’hypothèses erronées sur la façon dont les applications voudraient mettre des données en cache.

« Les gens trouvent compliqué de déployer leurs applications comme ils prévoyaient de le faire, » admet Jo Rabin, qui est aussi directeur technique de l’agence de marketing mobile Sponge. « A la lumière de l’expérience, nous avons découvert qu’il était impossible de faire certaines choses que les gens voulaient faire. »

Le groupe de travail Web Applications du W3C regarde désormais des cas d’utilisation qui doivent être possibles avec la future génération d’appcache.

Toute amélioration des capacités hors ligne complètera le travail déjà en cours sur le fonctionnement des applications web en dehors du navigateur. La plateforme web est utilisée comme base par un nombre croissant de systèmes d’exploitation, d’abord par Chrome OS, et aujourd’hui par Firefox OS de Mozilla, dédié aux smartphones. Google a récemment publié des « packaged apps » – des web apps qui se comportent plus comme des applications natives et peuvent tourner hors ligne et en dehors du navigateur – pièce maîtresse de son Chrome Web Store.

Le stockage en local est un autre domaine où une refonte est en cours, avec la publication récente d’une définition pour une nouvelle API web de stockage local, qui permettrait aux applications et sites au sein du navigateur de stocker des mégaoctets de données en local.

2. Performances

Les performances des technologies web, relativement plus faibles que celles des applications natives, sont un autre problème freinant le développement des web apps.

Alors que le langage le plus utilisé par les navigateurs pour les scripts, Javascript, est l’un des points-clés quand on parle performances. D’un côté, il s’agit d’un langage interprété, ce qui signifiait, jusqu’à récemment, que le code Javascript se comportait comme une série d’instructions données à un logiciel appelé interpréteur, plutôt qu’il nécessite une compilation. C’est ce qui donne à Javascript sa portabilité entre les différentes plateformes, lui permettant de tourner sur un navigateur, qu’importe que celui-ci soit sur Mac OS, Windows ou Linux, Android ou iOS.

Mais ce niveau d’abstraction supplémentaire de Javascript, comparé à des langages compilés, apporte un problème en termes de performances. Et ce, même si les navigateurs ont récemment implémenté des moteurs de rendu Javascript qui atténuent la différence de performances.

Javascript est également handicapé par sa nature dynamique – par exemple, le développeur n’a pas besoin de définir les types de données. Cette nature oblige les interpréteurs Javascript à gérer un nombre important de possibilités lors de l’interprétation du code, et limite les opportunités d’optimisation des performances. Des façon de contourner ces limitations sont en train d’être trouvées, comme la prise en charge par Mozilla de asm.js au sein de Firefox 22.

Asm.js est un sous-ensemble de Javascript qui contourne diverses fonctionnalités dynamiques du langage et permet ainsi au moteur de rendu du navigateur d’optimiser les performances, ce que la nature dynamique de Javascript interdirait en temps normal. Cela dit, la prise en charge n’est assurée que par Firefox pour l’instant, et il y a des limites aux gains de performances possibles avec asm.js.

Même si des façons de contourner les limites de performances de Javascript sont doucement en train d’émerger, les améliorations apportées à d’autres technologies web offrent des possibilités d’optimisation alternatives, comme la prise en charge d’effets d’animation avancés grâce à CSS Transitions. Et bien d’autres points bloquants des navigateurs mobiles sont plus visibles pour les utilisateurs, et devraient être plus simples à améliorer que de repenser entièrement Javascript.

Jake Archibald, de Google Chrome, a récemment affirmé que l’une des caractéristiques des web apps mobiles les plus gênantes pour les utilisateurs était le délai de 300 ms avant que le navigateur réagisse à une action de l’utilisateur sur l’écran tactile, implémenté pour permettre la détection d’une éventuelle double tape sur l’écran.

Avec les améliorations incrémentales des performances des technologies web, et l’arrivée de matériels nouveaux et plus rapides, Jo Rabin estime que les web apps en arriveront bientôt au point où leurs performances sont suffisamment bonnes pour la plupart des applications que veulent les utilisateurs, sauf pour les applications plus spécialisées qui demandent des performances de haut niveau, comme les jeux de tir à la première personne.

« La plateforme web a l’avantage car elle est de plus en plus suffisante, et meilleure encore dans de plus en plus de domaines », affirme Jo Rabin. « La question n’est pas, je pense, si les applications natives iront plus vite que si l’on utilise Javascript ou la plateforme web en général. Mais si la plateforme web va aller suffisamment vite pour permettre un nombre raisonnable d’applications sur un nombre raisonnable d’appareils. »

3. Accès limité aux fonctionnalités matérielles

Les applications natives sont généralement les premières à obtenir l’accès aux nouvelles fonctionnalités matérielles dédiées à certaines plateformes – que ce soit la navigation par GPS et l’accéléromètre ou la prise de photos avec le capteur d’un smartphone. Mais si une fonctionnalité matérielle particulière devient populaire, les standards d’implémentation de cette fonctionnalité dans le navigateur suivront toujours, estime Jo Rabin.

Le travail est en cours, au W3C, pour standardiser les APIs qui permettront aux technologies web d’accéder à la plupart des fonctionnalités qu’on trouve sur les smartphones modernes. Cette année, les travaux se concentrent en particulier sur la mise en place d’une API qui permettra une page web de gérer un carnet d’adresses, d’une API de messagerie pour permettre l’envoi et la réception de SMS et de MMS, de nouveaux mécanismes pour l’enregistrement de photos et de vidéos ou sons, de nouvelles fonctions d’interprétation permettant la prise en charge d’une souris, d’un stylo ou d’entrées tactiles, une nouvelle API de push pour permettre aux web apps de recevoir des messages en arrière-plan, de nouveaux media queries pour le responsive design, une API pour échanger des données avec le NFC et un contrôle précis des temps de chargement des ressources dans un document web.

En octobre 2012, le W3C a aussi lancé le Systems Applications Working Group, dont le but est de fournir un environnement d’exécution, un modèle de sécurité, et les APIs associées pour permettre le développement de web apps aux capacités similaires à celles des applications natives. Depuis son lancement, le groupe de travail a publié plusieurs spécifications, touchant des domaines comme la sécurité en dehors du navigateur.

Quel est le potentiel réel des web apps ?

Jo Rabin, du W3C, est peut-être confiant dans la capacité des web apps à devenir « suffisamment bonnes » pour être acceptées par la plupart des utilisateurs de smartphones ou d’ordinateurs, mais le reste du monde est-il d’accord ? Cela dépend à qui vous posez la question.

L’un des domaines où la philosophie de Rabin, qui pense que les technologies web seront suffisamment bonnes pour devenir la plateforme de prédilection pour les applications, est déjà acceptée, ce sont les services gouvernementaux. Par exemple, le Government Digital Service du Royaume-Uni a décidé que dans la plupart des cas, le gouvernement créera des sites et applications web en responsive design, qui tourneront sur PC, tablette ou smartphone plutôt que d’investir plusieurs fois pour créer des applications distinctes pour Android, iOS et les autres plateformes mobiles.

« Nous pensons que les bénéfices apportés par le développement et la maintenance d’applications justifient rarement leur coût, » juge Tom Loosemore, directeur délégué du service. « Les applications transforment peut-être le jeu vidéo et les médias sociaux, mais pour les services d’utilité publique, l’approche ‘création d’un site web qui s’adapte vraiment sur un grand nombre d’appareils’ est pour l’heure la meilleure stratégie. Cela permet de dupliquer ses services plus vite, de minimiser les impacts du marché et c’est bien moins cher à maintenir. »

Mais beaucoup d’entreprises ne sont pas convaincues que les web apps sont prêtes pour une adoption massive. Plus tôt cette année, le directeur de la mobilité de LinkedIn, Kiran Prasad, a expliqué pourquoi le réseau social professionnel a décidé de passer de sa stratégie de développement pour le web mobile à la publication d’applications natives.

Le web mobile partout ? – Image CC BY 2.0 Living Mobile

Pour LinkedIn, l’un des principaux échecs de sa web app mobile provient du manque de mémoire, et de problèmes d’interface utilisateur dus à des animations trop peu fluides. Le développement de web apps mobiles s’est aussi révélé plus difficile que de programmer pour les principales plateformes, selon Prasad, qui déplore l’absence de débogueur et d’outils de diagnostic qui lui permettent d’obtenir les informations dont il avait besoin sur les bugs et les problèmes de performances.

L’ampleur des problèmes identifiés par LinkedIn en développant une web app mobile, pour l’utilisateur comme pour le développeur, montre combien de travail reste à faire avant que les web apps mobiles atteignent ce standard « suffisamment bon » aux yeux des développeurs et des utilisateurs.

Il y a aussi Facebook, dont le fondateur Mark Zuckerberg a expliqué l’an dernier que la décision de l’entreprise de s’en remettre au HTML 5 pour créer ses applications était sa plus grande erreur. Cela dit, les deux entreprises développent toujours pour le HTML 5 et pour les technologies web, et les deux semblent engagées en faveur du web mobile sur le long terme.

Rabin reste optimiste sur la capacité des web apps à prendre leur place : « Alors que les capacités du web et la cohérence des standards s’amélioreront, il y aura de moins en moins de raisons d’écrire la majorité des applications commerciales en utilisant autre chose que les technologies web. »

Plus sur Technologie

To Top