Paris Web 2009 est terminé depuis 2 mois. C’est un évènement qu’on attend longtemps, qui passe très vite et dont on s’éloigne rapidement.
Pour cette édition 2009, j’ai présenté un atelier technique orienté HTML et JavaScript avec en ligne de mire Gears et sa faculté à rendre un site Web consultable hors-connexion.
Le but de l’atelier
Le contenu de cet atelier technique a été recueilli grâce à un retour d’expérience concernant un projet client.
_ Le but était de partager l’expertise acquise sur le sujet et d’anticiper les réponses à ces questions :
- Gears ou HTML5 ?
- comment faire du offline ? Est-ce que ça se fait tout seul ?
- que propose Gears ?
- quels outils pour accélérer les développements (ORM, libraries etc.) ?
- quid de la mobilité ?
- appli iPhone/Android ou appli Web offline ?
- quelles sont les contraintes de développement/fonctionnement ?
L’atelier, en substance
En 1h30, on en dit des choses. Difficile d’écrire tout ce qui a pu être énoncé, surtout quand on répond aux questions d’une salle entièrement remplie.
Gears ne permet pas de faire du offline juste en ajoutant le script. Il s’agit d’une bibliothèque fournissant des composants nécessaires à un fonctionnement hors-ligne :
- LocalServer pour stocker des ressources, sous forme de proxy côté client
- Database pour stocker, indexer et requêter dans des bases de données SQLite embarquées
- WorkerPool pour paralléliser des traitements et les exécuter hors du thread navigateur, évitant ainsi les gels de son interface
Ne rêvons pas tout de même : il est difficile d’imaginer transformer une application en Webapp offline sans mettre les mains dans le cambouis. Gears propose la boîte à outils nécessaire pour y parvenir, à vous de faire la reste.
Gears est toutefois allé au-delà de sa mission première, le hors-ligne. La bibliothèque s’est enrichie d’un module supportant le glissé/déposé, HttpRequest, géolocalisation et autres joyeusetés comme l’upload multi-fichiers avec suivi de progression.
Ça ne vous rappelle rien ? La specification HTML5. L’équipe de Gears a porté de nombreux modules vers la voie de la standardisation transformant Gears en un liant de compatibilité entre les navigateurs HTML5 et les autres ? ceux qui ne le sont pas.
En attendant, la réalisation d’une appli offline nécessite quelques pré-requis :
- une bonne expérience utilisateur (UX)
- un code maintenable
- et fatalement, des compétences JavaScript un peu plus poussées qu’à l’accoutumée
Alors, Gears ou HTML5 ?
Gears ayant l’avantage de fonctionner sur des navigateurs incompatibles HTML5 (qui a dit Internet Explorer ?), que convient-il d’utiliser : Gears ou HTML5 ?
Tout dépend du public cible. Google a toutefois discrètement annoncé qu’HTML5 est à sérieusement considérer, au grand damn de la compatibilité totale.
En un sens, il est plus simple de réaliser une application Web hors-ligne de manière pérenne, sans logiciel à installer, avec le couple HTML5 et CSS3. Les possibilités en terme de rendus rapprocheront davantage le résultat final d’une véritable application digne d’être présente dans un AppStore.
Support de présentation
Rendez-vous l’an prochain pour Paris-Web 2010, avec peut-être un autre atelier et pourquoi pas, vos retours d’expérience sur le sujet du offline ;-)
D’ici là, rendez-vous en février 2010 à Symfony Live 2010 pour assister à la session [An offline admin-generator with Gears and HTML5->http://www.symfony-live.com/schedule#session-tp1].