Un site sans connexion Internet ? Google Gears arrive !
Parlons un peu de Google aujourd’hui ! (D’ailleurs je fais une petite parenthèse pour vous signaler que Talus a des vidéos sur une conférence Google, si ça vous branche allez voir l’article concerné)
Je ne vais pas vous parler de la firme en général mais plutôt d’un de ses produits qui est encore en version bêta : Google Gears !
Je vous vois déjà venir : “De quoi s’agit-il ? Et pourquoi ça me dit (peut-être) quelque chose ?”
Bon, tout d’abord si cela vous dit (peut-être) quelque chose c’est parce que Wordpress l’utilise, mais ça ne vous explique pas son utilité hein ?
Il s’agit d’un plugin web que l’on peut installer sur n’importe quel OS et qui vient s’intégrer à votre navigateur (dans la liste de ceux compatibles bien sûr : IE, Firefox, Chrome, Safari). Son intérêt réside avant tout dans la possibilité de sauvegarder votre site web sur le PC de l’utilisateur et ainsi permettre son affichage même sans connexion à Internet.
Venons-en au détail :
Google Gears est composé de 3 modules principaux (et plusieurs autres “secondaires”) ayant chacun une fonction bien spécifique :
- LocalServer : Mot à mot, il s’agit d’un serveur local, mais en fait ce n’est pas exactement ça, il s’agit surtout d’un simple espace de stockage car il est incapable d’exécuter le moindre code PHP, tout doit passer par le Javascript (et cay bien). En fait on peut l’assimiler à un gestionnaire SVN car il récupère les fichiers (automatiquement ou manuellement) qui ont été mis à jour sur le site web de l’application (d’ailleurs il ne récupère que les fichiers mis à jour, donc ça évite les téléchargements superflus =p ).
- Database : Je pense que vous avez compris, il s’agit effectivement d’une base de données. Celle-ci est accessible par le biais du Javascript et est basée sur SQLite donc il n’y a pas de quoi s’inquiéter : On peut faire autant de choses qu’avec une BDD classique.
- WorkerPool : Alors ça j’ai mis un moment avant de comprendre son utilité, il s’agit d’un gestionnaire de tâches asynchrones. Plus simplement, ce module permet de lancer des tâches en arrière-plan afin de ne pas bouffer tout le proco. Mais qu’est-ce que ça vient foutre là en fait ? C’est quoi le rapport ? Eh bien il se trouve que c’est déjà utile rien que pour le téléchargement des fichiers sur le serveur local, sans lui l’interface se bloquerait.
Il a aussi d’autres utilités mais c’est le module que j’ai le moins étudié pour le moment donc je peux pas vous dire grand chose de plus.
Il y a aussi quelques autres modules mais un peu plus secondaires, on peut citer parmi eux celui qui permet de créer des icônes de raccourci sur le Bureau, dans la barre de lancement rapide ainsi que dans le menu Démarrer, il y a aussi un système de géolocalisation qui fonctionne bien mais dont je ne comprends pas l’utilité…
Bref, bien qu’étant encore en version bêta (v0.5.4.2 à l’heure où j’écris ces lignes), Google Gears est pour le moment très complet. Et d’ailleurs c’est bien pour cela que j’ai commencé à m’y intéresser. Tiens, puisqu’on parle de ça on va voir un peu “la partie code”.
Tout d’abord, je tiens à féliciter l’équipe de développeurs pour leur Doc qui est très complète, j’ai pas eu de gros problèmes pour apprendre à me servir de Gears (faut comprendre l’anglais technique quoi…).
La structure de Google Gears est plutôt bien réalisée, on a une classe d’ensemble (nommée “factory” mais qui sera peu à peu abandonnée dans la version finale de Gears) qui permet de créer un objet pour chaque module (Localserver, Database, etc…). Et chacun de ces objets possède des méthodes et des attributs permettant de gérer le domaine qui leur est attribué.
Comme je m’explique mal je vais faire un exemple pour le serveur local :
var localserver = google.gears.factory.create(‘beta.localserver’);
// On ouvre maintenant le gestionnaire de fichiers locaux :
var store = localserver.createManagedStore(‘my_store’);
// On peut maintenant commencer les opérations sur le serveur local :
store.manifestUrl = ‘manifest.txt’ // On spécifie le "manifest" à utiliser.
store.checkForUpdate(); // Permet de vérifier les mises à jour des fichiers.
C’est pas bien sorcier hein ? Bon, les deux dernières lignes ne sont pas importantes, c’est juste pour vous montrer qu’il y a des méthodes et des attributs de disponibles.
Mais, concrètement, comment fonctionne le serveur local ? Comme je l’ai déjà dit plus haut, il s’agit avant tout d’un espace de stockage avec mise à jour des fichiers, rien de plus. Mais là où ça prend tout son intérêt c’est que, dorénavant, ce sont les fichiers enregistrés sur votre ordinateur qui seront chargés et non pas ceux disponibles sur Internet, c’est donc beaucoup plus rapide. Certains me diront que le cache fait ça tout aussi bien mais ce n’est pas vraiment le cas car Gears est quand même plus rapide et lui il peut enregistrer absolument tout et sans limite de temps, contrairement au cache de votre navigateur.
Venons-en maintenant au module Database, je vais faire court. Celui s’initialise de la même façon que le serveur local (en fait tous les modules s’initialisent de la même façon, c’est plus simple) et permet de créer plusieurs BDD pour un seul site web. La syntaxe d’écriture pour commander à la BDD reste très simple, on l’utilise à peu près de la même façon qu’une BDD classique.
Voilà, je ne pense pas qu’il soit nécessaire d’en dire plus.
Concernant le WorkerPool, je ne vais pas en parler vu que je n’ai pas vraiment étudié le truc.
Bref, tout ça c’est bien beau mais qu’est-ce qu’on pourrait bien faire d’utile et qui utilise Gears à bon escient ? Je me suis effectivement posé cette question moi aussi et en fait la réponse est simple : Gears n’a pas été conçu pour faire des sites webs disponibles hors-ligne mais pour créer des applications !
Des applications ? Oui ! Je pense que vous connaissez tous ce système d’éditeur de texte en ligne, il en existe plusieurs mais on ne peut y accéder que en ligne. Alors pourquoi ne pas le rendre compatible avec Google Gears ? Ainsi l’accès à l’éditeur se ferait depuis n’importe où, et ce, même sans connexion Internet.
On constate d’ailleurs que Google a commencé à exploiter son propre plugin, l’entreprise a déjà rendu plusieurs de ses applications compatibles avec Gears, on peut notamment citer : Gmail, Calendar, Youtube aussi ! Je crois qu’il y en a d’autres mais je ne les connais pas tous.
Bref, je crois avoir fait le tour sur ce plugin. Pour ceux qui voudraient éventuellement essayer, j’ai réalisé une petite page web exploitant le Localserver (pas de Database non, la flemme). Et pour ceux qui voudraient en voir plus alors je vous redirige vers le site de développement où on peut trouver quelques exemples.
Ah, dernière chose ! Si vous êtes tentés par l’aventure (autrement dit, si vous voulez coder pour Gears), ne vous étonnez pas de voir des bugs, Gears est encore en version bêta ! D’ailleurs si vous en trouvez un je vous recommande de le rapporter ici, j’en ai moi-même rapporté deux (ici et là).
Voilà tout, à la prochaine !
Nes’
Mais… C’est qu’ils sont sexy tes rapports de bugs. Fais leur danser la tecktonik, comme papa, pour voir ? :p
Ferme ta gueule pour voir ? =°
Je ne suis PAS tecktonik §
Ben je peux pas la fermer, vu qu’elle est pas ouverte…. A moins que t’ai vu quelque part dans mon commentaire une quelconque facon que j’ai d’avoir eu à l’ouvrir pour te dire ma poésie :p. Ou pas ? :p
(Je te charrie juste… Ahlala, les jeunes, je vous jure…)
Ça doit être pratique pour regarder tes sites ecchi ( ou hentai ) sans connexion .
Bon attend je me suis foutu de la geule de nes ok heu ah oui
Big brother is watching you , attention google va tous nous tuer .
Le troll poilu ok
Sinon pas mal comme article :D
Ouais, y’aurait moyen mais je te dis pas le nombre d’images à télécharger x)
Et Google (tout comme Microsoft), cay le bieng §
Non mais c’est vrai, faut arrêter de leur en vouloir parce qu’ils ont le monopole quand même. D’autant plus qu’ils ont de super bons trucs parfois, Google arrête pas d’innover dans le web (Gears est un bon exemple) et Microsoft ils ont la plateforme .NET qui roxx (et pas que ça).
(Et Talus, je te merde quand même, na !)
C’est pas compatible avec Linux 64bits
donc :
ça pue.
(Moi ? rabat-joie ?)
Qu’est-ce que tu veux que je te dise ? T’as qu’à prendre du 32 bits au détriment de ton matériel informatique =°
Edit : En fait non, tu fail, s’too §
C’est pas ma faute si google me l’a pas proposé tout seul :D et la version 32bits était apparemment pas compatible.
Sinon, j’ai un autre truc pour critiquer, c’est que ça favorise l’utilisation de navigo au détriment d’autres, et tout cela par le choix de google.
Edit :
C’est chiant à faire pour le 64bits, si google veut que j’installe son truc, qu’il fasse le sale boulot.
(Oui, gears c’est libre si j’ai bien compris, ils controlent malgré tout, c’est pareil)
Roooh, jamais content celui-là x)
Si, je suis content quand tu écris un article, alors au boulot :D .
À priori tu es pas le seul à aimer mes articles d’ailleurs, mes stats montent en flèche ! Rien que pour le mois de Janvier, j’ai une progression de 50% pour les visiteurs uniques par rapport au mois de Décembre ^^ .
Mais pour le moment je sais pas quoi écrire, alors tu attends =°
Facon, jamais bien interessant ce que t’écris. Ou pas.
Moi, je trouve que Gears, c’est bien =) (même si tout le monde s’obstine à le traiter de puant…)
Mais je l’ai utilisé partie utilisateur et non développeur, j’ai donc vu qu’un petit bout des bonnes choses, une fois que j’aurai achevé le cours de JS, je m’y mettrais =) .
Oui, enfin je te conseille d’abord de rester dans le JS classique pour bien prendre le temps de t’habituer à ce langage, pour Gears tu verras ça après, enfin c’est un conseil ;)
Ok, on verra j’essaye de me familiariser au JS (que langage compliqué !) et je vais voir après ^^’.