| Fiche d’identité | |
|---|---|
| Nom du produit | Gears |
| Auteur | Google via Google Code |
| Date de sortie de la première version | 0.1 - Mai 2007 |
| Numéro de la version étudiée | 0.4 - Aôut 2008 |
| Licence | BSD |
| Navigateurs compatibles | Apple Mac OS X, Linux, Windows XP et + : Firefox 1.5 et + / Windows XP et + : Internet Explorer 6.0 et + / Windows Mobile 5 et + : Internet Explorer 4.01 et + / Google Chrome |
Gears (anciennement appelé Google Gears) est une extension du navigateur qui permet aux développeurs de créer des applications Web pouvant fonctionner sans être connecté.
Diffusée sous licence BSD, cette extension est Open Source et au stade de développement (0.4). La documentation est relativement complète et de nombreux tutoriels sont disponibles ainsi qu’une communauté déjà fournie.
Gears s’appuie sur Dojo Offline Toolkit, projet open source qui permet également de créer des applications Web fonctionnant hors connexion.
Cette extension permet notamment de synchroniser les modifications apportées hors connexion.
Principe
Gears permet de régler un des problèmes majeurs des applications Web, la nécessité d’être constamment connecté. En effet, il transforme le navigateur en solution client-serveur locale, rendant ainsi possible la manipulation de contenu hors connexion. Une fois connecté, une simple synchronisation avec le serveur concerné met à jour les différents contenus modifiés.
API
Gears est un applicatif qui installe une extension au navigateur Web en lui rajoutant une API Javascript comprenant 3 fonctionnalités majeures :
Ce composant stocke localement et ce jusqu’à suppression du fichier de sauvegarde, toutes les données modifiées par l’utilisateur. On peut alors envisager d’utiliser cette base de données intégrée au navigateur pour stocker d’autres informations, comme les préférences de l’utilisateur par exemple.
Ce composant paramétré par l’application Web gère l’accès aux ressources et intercepte les URLs passées au navigateur pour les servir localement lorsqu’il n’y a pas de connexion.
Ce composant a pour vocation d’assurer la communication entre les deux premiers composants et permettre la mise à jour des données une fois reconnecté. Son mode de fonctionnement en tâche de fond est un atout majeur pour l’amélioration des performances de l’application Web.
Gears a de plus implémenté les fonctionnalités suivantes :
Fonctionnement
Gears dispose de 2 modes de fonctionnement, Modal et Modeless.
Ce système met de plus l’utilisateur à contribution dans le sens où c’est lui qui décide quand il veut travailler hors connexion.
Ce type de fonctionnement a cependant quelques inconvénients notamment dans le cas de coupures régulières (dans un train ou un avion par exemple) car l’utilisateur doit jongler entre le mode connecté/déconnecté.
Google Reader est un bon exemple d’application Web fonctionnant de cette manière. En résumé, Google Readers est une application qui concentre au même endroits tous les Flux RSS auxquels vous êtes abonnés et permet leur lecture. L’intégration de Gears permet désormais de consulter et lire toutes les informations issues des Flux RSS sans être connecté. Cela peut s’avérer pratique si l’on est dans un train par exemple, le mode déconnecté fait alors gagner du temps.
Ce type de fonctionnement a l’avantage d’apporter un certain confort à l’utilisateur dans le sens où celui ci n’a pas à se préoccuper de sa connexion mais est plus difficile à implémenter pour le développeur.
Remember the milk est un bon exemple d’application Web fonctionnant de cette manière. Pour résumer, cette application permet notamment de réaliser une liste de tâches consultable en ligne. L’intégration de Gears permet désormais de modifier cette liste de tâches sans devoir se préoccuper de l’état de sa connexion, l’application réalisant de manière automatique des synchronisations avec le serveur afin de mettre les nouvelles tâches en ligne.
Mise en place
La mise en place de Gears se décompose en plusieurs étapes :
L’extension Gears s’installe simplement par le biais d’un executable disponible sur le site dédié.
Le manifeste quant à lui consiste en un fichier au format JSON, manifest.json listant toutes les ressources (HTML, images, CSS, JS...) à mettre en cache hors connexion permettant le bon fonctionnement de l’application Web :
{
"betaManifestVersion": 1,
"version": "ma_version_1",
"entries": [
{ "url": "ma_page.html"},
{ "url": "ma_page.js"},
{ "url": "ma_page.css"},
{ "url": "ma_page.png"},
{ "url": "gears_init.js"}
]
}
Le fichier gears_init.js contenant la procédure d’initialisation de l’applicatif, il doit obligatoirement figurer dans le manifeste.
Il est à noter, que la création de ce manifeste peut vite devenir laborieux pour le développeur. Si on se place par exemple dans la situation d’une page créer dynamiquement, ma_page.html ?p=3&a=4, il est absolument primordiale de la lister dans le manifeste :
...
{ "url": "ma_page.html"},
{ "url": "ma_page.html?p=3&a=4"},
...
En prenant en compte le nombre de possibilités pour une même page, on se rend vite compte de l’ampleur de la tâche. Au développeur de trouver le moyen de recenser toutes les ressources lors de la création de ce manifeste.
Enfin, la dernière étape consiste en la mise en place dans un fichier Javascript, ici ma_page.js, des fonctions qui se chargeront en autre de :
Faiblesses
Gears ne dispose pas de certains mécanismes primordiaux comme par exemple la détection de l’état de la connexion ou encore la synchronisation automatique. C’est au développeur d’implémenter toute la logique de ces mécanismes pour rendre l’application Web fonctionnelle.
Si la détection de l’état de la connexion n’est pas trop contraignante, surtout par le biais de navigator.online fournit par Firefox et Internet Explorer, ce n’est pas forcément le cas pour la mise en place de la synchronisation avec le serveur permettant de renvoyer les modifications apportées hors connexion.
Contribution
Une mailing-list ainsi qu’un wiki sont disponibles pour contribuer au projet Gears.
Utilisation
Liste non exhaustive d’applications Web utilisant Gears :
Gears n’est encore qu’au stade de développement mais semble très prometteur comme le montre les nombreuses applications qui en font déjà l’utilisation. Concrètement, il est de plus en plus envisageable que dans un avenir proche, on puisse utiliser Gmail ou encore Google Calendar sans être forcément connecté.
En attendant, on peut toujours jeter un oeil sur les futures applications de type RIA (Rich Internet Application) intégrant complètement Gears dans leur système comme Google Widget Toolkit, le framework de développement Java de Google.
| Forces | Faiblesses |
|---|---|
| - Possibilité de travailler hors connexion | - Pratiquement tout est à implémenter par le développeur |
| - Synchronisation des modifications | |
| - Stockage des données localement | |
| Opportunités | Menaces |
| - Soutien d’Adobe, Mozilla et Opéra | - Evolution du projet lié à priori à celui de Dojo Offline Toolkit |
| - Apport de la communauté | - Concurrence avec Microsoft et son Microsoft Sync Framework |
| - Initiative indépendante, potentiellement concurrente du Structured Client Side Storage de HTML5 |