23 mai 2013

HTML 5 et les applications web pour les nuls

Je suis ému. Je me suis rendu compte, ce matin, que j'avais ma première "web application" dans mon iPhone. C'est l'occasion de faire un petit point sur HTML 5 et les applications, tout en vous permettant d'atteindre des sommets dans la culture internétique.

Commençons par les applications HTML 5 ou « web applications » ou « webapps »

Il existe 3 manières de faire quelque chose avec un smartphone, une tablette, voire un ordinateur :
-         via le navigateur en utilisant l'internet et le web standard (avec une présentation des pages adaptée à la forme de l'écran),
-         via une application traditionnelle (ou native) installée sur votre appareil et adaptée à l'OS de ce dernier,
-         via une "web application" telle que je découvre aujourd'hui !

Attention ! Je dis bien que je découvre les web applications liées à HTML 5 aujourd'hui, pas HTML 5. Ce que je ne savais pas, c'est que HTML 5 permettait de stocker un bout de code informatique sur un appareil et beaucoup de données (jusqu'à 5 Mo, je crois). Je croyais qu'il ne s'agissait "que" d'une évolution majeure d'HTML (voir en fin de billet).

En fait, une application HTML 5 peut fonctionner sans connexion internet et en apprenant ça, je suis resté sur le cul. Il y a de la place.

Les intérêts des applications HTML 5 par rapport aux applications natives :
-         il n'y a pas besoin de passer par des machins comme l'Apple Store pour les avoir (ou les mettre à jour), une connexion à Internet suffit,
-         l'application est la même (ou presque) quel que soit l'OS de votre machin,
-         les mises jours sont immédiates vu que le logiciel est maitrisé par le serveur web.

Les inconvénients :
-         vous ne bénéficiez pas de la sécurité liée au "store",
-         les traitements peuvent être plus lents (vu la nécessité de transférer du code informatique en permanence et la non utilisation d'un langage natif),
-         les applications sont beaucoup moins fluides (ce qui est lié à la lenteur ci-dessus).

Chaque usage trouvera le mode de fonctionnement idéal. Par exemple, un jeu d'animation ne pourra pas avoir une performance correcte en HTML 5. Par contre, un lecteur de flux pourrait être meilleur en HTML 5 vu que l'essentiel des traitements consiste à afficher des données en provenance du web.

En fait, pour l'utilisateur, ça ne changera pas grand chose : ce n'est pas lui qui décide. La contrainte est surtout pour l'entreprise qui fournit l'application (en HTML 5, le volume des données transférées est beaucoup plus important puisqu'il faut aussi transférer du code informatique : les serveurs doivent être beaucoup plus puissants, ma bonne dame).

Avant d'entrer plus précisément dans la technique, je vais m'offrir une digression. HTML 5 représente l'avenir, a priori. Il n'empêche que c'est un important nouveau changement de direction prise par l'informatique.

Rappelez-vous !

1. Jusqu'au début des années 80, l'essentiel des traitements informatiques avait lieu au niveau des ordinateurs centraux. Les terminais étaient idiots comme un directeur d'agence numérique saoul.

2. Ensuite, les ordinateurs individuels sont arrivés, avec l'emblématique IBM PC. L'intelligence était portée par le terminal.

3. 15 ou 20 plus tard, internet s'est développé et des applications nouvelles se sont développées, telle que Google Doc qui concurrençait un machin comme Word avec une intelligence sur les ordinateurs centraux.

4. Une dizaine d'années plus tard sont arrivées les smartphones tels que nous connaissons aujourd'hui, avec leurs applications en local : l'intelligence est sur les terminaux.

5. Maintenant, HTML 5 arrive et l'intelligence est à nouveau dans les serveurs centraux.

Je parle d'intelligence, mais c'est au niveau fonctionnel, uniquement. Il est évident que c'est le progrès technique, d'une part au niveau des terminaux et d'autre part au niveau des moyens de télécommunication qui permet tout cela, progrès technique accompagné d'une bonne couche de standardisation entre les différents industriels concernés.

L'heure est venue aux considérations techniques. Je vais vulgariser des billets de vulgarisation. Si vous ne comprenez rien, c'est que vous êtes très con. Désolé.

Tout d’abord, nous allons faire un tour chez Apple pour voir ce qu’ils disent des « Web Application » (que j’appelle applications HTML 5) pour vous prouver que je ne raconte pas trop de conneries : « Une application Web est conçue pour ressembler et se comporter comme une application native. Par exemple, elle est mise à l'échelle pour s'adapter à la taille de l'écran sur iOS. Vous pouvez adapter votre application web pour iOS ou, encore mieux, pour la faire apparaître comme une application native lorsque l'utilisateur l’ajoute à l'écran d'accueil. »

Vulgarisons HTML 5 !

HTML est une espèce de langage de communication que le serveur va utiliser pour dire au navigateur (Internet Explorer, Firefox, Safari, Chrome, …) de ton terminal (ordinateur) comment afficher une page web. Par exemple, quand tu lances mon blog, il va dire au navigateur : « Hé ! Ducon ! Ecrit « Partageons l’addiction » en gros en haut. » Le navigateur est un logiciel spécifique qui vous permet d’accéder au web. HTML est un standard de communication qui permet à un serveur de s’adresser à n’importe quel terminal (et à son navigateur) de la même manière.

Une des bases est la balise HTML, un truc va donner des instructions, comme le « en gros » que je citais dans mon exemple.

HTML a été inventé par un rosbif dans les années 80, Sir Tim Berners-Lee. C’est le gugusse qui a aussi inventé le web. J’aurais pu le faire mais j’étais au bistro. Vous faites la confusion entre Internet et le web ? Ce n’est pas très grave. Internet est le réseau de communication par lequel on papote. Le web est ce qui permet qu’on parle tous la même langue et qu’on se comprenne. Je vais schématiser : vous avez l'application Facebook sur votre smartphone. Pour causer avec le serveur Facebook, votre application Facebook passe par Internet mais pas par le web. Le web est ce machin qui permet d'afficher des pages web dans des navigateurs. Il y a d'autres applications qui utilisent Internet, comme la messagerie, le transfert de fichiers et des machins privatif comme Facebook que j'évoquais à l'instant.

Je ne vais pas m’appesantir sur tout ce bordel, j’avais déjà fait un billet de vulgarisation à propos de HTML, du web, des flux RSS et tout ça

HTML 5 est la dernière version d’HTML, la nouvelle norme, et deviendra expressément recommandée à partir de 2014.

Petit 1 : HTML 5 définit la notion d’article qui est en fait une partie d’une page web. Toutes les parties de votre « écran » pourront vivre leur vie en toute indépendance. Imaginons que sur ce blog, on considère trois parties : l’en-tête, la colonne à la con à droite et la colonne du milieu où j’écris des conneries. Vous scrollez ici, le reste ne bouge pas. Il y a un tas de truc comme ça qui permettent d’améliorer ou de simplifier la gestion des pages. En gros, ça permet de remplacer en partie ce qu’on appelle les CSS qui permettent d’organiser les pages.

Petit 2 : Javascrit est le langage qui nous permet de rendre le navigateur assez intelligent pour être développeur dans une agence de communication. Et ben avec HTML5, c’est encore mieux.

Petit 3 : l’utilisation de la géolocalisation, actuellement usuelle par les applications natives, sera facilitée sur le web.

Petit 4 : Canvas est un machin qui permettra de remplacer flash, pour dessiner, manipuler des images, bouger les oreilles, …

Petit 5 : le machin prendra en compte les audios et vidéos encore mieux que Flash.

Voila pour le plus gros, en plus des « web application ».

HTML continue d’évoluer… En gros, certaines des extensions (on peut considérer que flash en est une grosse) que vous avez dans les navigateurs et certaines des applications de vos smartphones finiront dans le protocole standard, au fur et à mesure que les industriels du secteur se mettent d’accord au sein de leur groupe de travail et de normalisation (l’illustre W3C). Par exemple, vous avez une application Google Drive qui permet de synchroniser les documents : on peut supposer que, un jour, ce machin sera intégré au navigateur pour standardiser cette synchronisation. En français : le protocole de communication pour la synchronisation de document entre le terminal et "le cloud" deviendra standard.

Je vais résumer en empruntant la formule de l’illustre Fabien Canu : « HTML5 c'est un mélange d'HTML, de CSS et de JavaScript. On pourrait dire que c'est le terme qui remplace Web2.0. »

Que dire de plus ?

Dans les « webapp », il y a en fait une petite partie de code qui est installée comme une application native (en Objectif-C pour Iphone ou Java pour Android) qui permet de stocker les premières pages HTML afin d’avoir une application qui fonctionne sans connexion internet, ne serait-ce que pour dire aux utilisateurs : « Hé ! Connard, tu n’es pas connecté, comment veux-tu que ça marche ».

Les données de l’application peuvent être stockées en local mais la standardisation n’en est qu’à ses premiers balbutiements.

Le progrès est en marche !

Et on ne va encore rien comprendre, je serai obligé de faire des billets de vulgarisation et mon blog aura éternellement du contenu.

Je n’ai pas répondu à une question : qui est Fabien Canu ? C’est un salarié d’une société sympathique au sein de laquelle il n’est pas assez payé mais c’est normal, les deux patrons dépensent leurs sous au bistro. Il est « concepteur web ». Il est aussi blogueur et j’ai pompé une partie des conneries que j’ai narrées là sur deux billets où il explique HTML 5 à sa grand-mère (première partie, deuxième partie). Bloguerollez-le et backtweetez-le.

Vous pouvez lire.

4 commentaires:

  1. Pas facile de vulgariser et d'être rigoureux, mais en gros c'est bien vu.

    Avec les web applications, on a de la logique qui peut être répartie entre le client et le serveur cependant, ce n'est pas un retour au 100% serveurs centraux. Et on n'a pas forcément beaucoup de choses à transmettre. Les traitements locaux peuvent même décharger le serveur.

    Et puis pour faire plaisir à disp, tu aurais pu dire que le HTML5 est la base du format ePub 2, donc un ingrédient essentiel des livres électroniques ! Tiens, j'ai même fait un ePub qui utilise un canvas pour dessiner :)

    RépondreSupprimer
    Réponses
    1. Oui, ce n'est pas 100% aux serveurs centraux, je parle bien de fonctionnement off line. Par exemple, j'ai l'espoir de voir un jour un lecteur de flux RSS en HTML5 avec lequel on puisse télécharger le contenu et le lire off line (dans le métro). C'est un peu comme un livre...

      Supprimer
  2. Rejoins le W3C ! Tu as raison !

    RépondreSupprimer

La modération des commentaires s'active automatiquement deux jours après la publication des billets (pour me permettre de tout suivre). N'hésitez pas à commenter pour autant !