Google annonce une mini-révolution dans le monde du web grâce à Google Gears. Son applicatif marie le fonctionnement des applications offline/online, chasse gardée jursqu’à présent des clients lourds, avec celui des applications internet/intranet (contenu + HTML + JS).
Cet article en trois volets rentre dans le coeur de Gears, illustré par un exemple de mini-sondage.
Que contient Gears ?
Google Gears est un applicatif inséré comme extension dans Internet Explorer et Firefox, à l’aide d’un éxécutable. Bien qu’en beta très préliminaire (v0.2 à ce jour), il contient 3 grandes fonctionnalités :
- Database : l’application embarque la base de données relationnelle SQLite, avec une API javascript pour l’appeler. Les grandes fonctionnalités SQL sont représentées (requêtes Select/Insert/Update/Delete, transactions, paramètres…).
- LocalServer : un système de cache paramétré par l’application permet de stocker les ressources de la page (HTML, images, CSS, JS…) pour les servir lorsque le navigateur est hors ligne ou la page en ligne est inaccessible.
- WorkerPool : système de messagerie asynchrone similaire à celle de Windows, permettant d’éxécuter des fonctionnalités Javascript de manière non-bloquante.
Je passe certaines fonctionnalités comme HttpRequest ou Timer, puisque j’imagine que la plupart des développeurs feront le choix de coupler Gears à un framework Javascript comme Prototype qui les contient déjà.
La documentation de Google Gears est complète et bien organisée (ca mérite d’être dit après avoir vu Netvibes UWA…) : des tutoriels, l’API complète, un blog, une communauté déjà bien fournie…. tout y est.
Quelques points négatifs cependant :
- il n’y a pas de mécanisme de synchronisation lorsque la connexion réseau est rétablie, il faudra donc implémenter soi-même toute la logique pour renvoyer les données du navigateur vers le serveur.
- il n’y a aucune détection proposée en standard par Google pour connaitre l’état de la connexion (en ligne ou déconnecté). Fort heureusement, ce second point est peu contraignant, Firefox et IE permettant cette détection par le biais de navigator.online et par les évènements du DOM associés (online et offline). Le concept a d’ailleurs été implémenté par Autodesk dans une démo de dessin vectoriel.
Pour quelle utilisation ?
On imagine aisément les utilisations pour les applicatifs Google, qui seront sûrement les premiers utilisateurs de ce service : rédaction du contenu offline (documents, feuilles de calcul, mails…) et synchronisation avec le site de Google une fois en ligne. Les fonctionnalités sont très intéressantes pour tirer parti de la mobilité, il suffit d’imaginer un Netvibes qui aura préchargé le contenu de vos flux RSS avant d’aller prendre le train et vous permettre leur lecture sans être connecté pour saisir la puissance du truc.
Autre fonctionnalité pouvant tirer parti du stockage en local : la saisie de données personnelles. Typiquement, on pense à une application de comptabilité personnelle ne nécessitant que certaines infos distantes (cours de bourse, synchronisation d’infos du site de sa banque), laissant les informations bancaires sur la machine de l’utilisateur. Essayez Buxfer, basé sur Gears, pour en voir un exemple concret.
Mise en place dans une application
J’ai choisi de faire un petit exemple de formulaire de sondage avec 3 questions. La saisie et sauvegarde se fait hors ligne; en mode connecté, la synchronisation envoie si nécessaire les saisies stockées sur un serveur distant pour consolider les résultats. L’exemple est relativement simple, permet d’imaginer la mobilité du sondeur (dans la rue ?) d’un point de vue fonctionnel, et tire parti des 3 fonctionnalités clés de Gears.
Cela se met en forme avec un fichier HTML, une feuille de styles, et un peu de Javascript.
La première opération consiste à mettre en place un fichier de manifeste - au format JSON - listant les fichiers que vous souhaitez mettre dans le cache hors-ligne. Un exemple est disponible sur le site de Google.
Ensuite, un fichier Javascript sondage.js contiendra un objet Sondage qui propose :
- initialisation,
- mise en cache,
- nettoyage du cache,
- sauvegarde de la saisie du formulaire
- synchronisation hors ligne/en ligne
A suivre dans la deuxième partie : codage de l’initialisation et de la gestion du cache
avril 24th, 2011 at 18:26
En 2012 approximativement 50% des smartphones seront animé par Android, très loin devant Symbian, RIM, IOS ou encore Windows Phone 7. Google prévois d’autre part de réorganiser le contenu de youtube et de lancer quelques chaines premium(payantes) offrants des services similaires aux chaines classiques : sport, séries, cinéma etc. Cela fera entrer Google en concurrence directe avec les chaines de télé. Je m’inquiête un peu de l’expension de ce qui n’étais à l’origine qu’un moteur de recherche. Un monopole n’est jamais bon surtout quand il s’agit d’organiser l’information mondiale. Google développe ses tentacules partout, dans tous les domaines. Bientôt l’entreprise imposera sa loi aux états.