Projet Sweetch : le web offline pour tous !

Le sujet du web offline m’anime désormais depuis un petit bout de temps… et ça n’a pas vraiment cessé à ce jour. Permettre l’utilisation d’application web hors ligne, c’est en effet probablement franchir le dernier pas qui nous sépare du Graal que constitue le concept de client riche, réunissant le meilleur du client léger et du client lourd.

Or pour y arriver, il faut faire en sorte que nos applications stockent des données côté client, et de préférence, avec une base SQL, histoire d’avoir quelque chose de performant. A l’heure actuelle, plusieurs technologies nous permettent de faire cela :

– Google Gears, utilisé par exemple dans Google Reader

– Adobe Air, utilisé dans le client riche d’Ebay

– Java, utilisé dans la messagerie web d’entreprise Zimbra

– HTML5, dont les spécifications commencent à être implantées dans WebKit et Firefox3

Le problème, c’est qu’utiliser une de ces technologies, c’est se restreindre non seulement à un certain type de client mais aussi devenir dépendant d’une technologie, de ses évolutions et de ses limites… et c’est de là qu’est né le besoin de créer quelque chose comme Sweetch.

Jack Slocum (de ext.js) nous a montré il y a quelques temps de cela qu’il était possible de créer une application fonctionnant en mode offline aussi bien sous AIR que Gears. Le but de Sweetch, c’est de donner aux développeurs Ajax le moyen de faire ce genre de développement en tirant partie des multiples technologies à notre disposition.
Concrètement, la librairie doit procéder de la manière suivante :

1- détecter l’environnement du client

2- déterminer la stratégie de stockage adéquate

3- télécharger puis utiliser un « storage provider » qui permet de mettre en oeuvre cette stratégie

Si tout se passe bien, on aura donc une véritable API pour tous les développeurs souhaitant faire des applications web offline sans s’enfermer dans une technologie particulière. Ce projet dont le développement débute véritablement aujourd’hui sera basé sur la librairie dojo d’Alex Russel, et en particulier sur les parties sql, offline et storage initiées par Brad Neuberg.

On vous tient au courant !