Qu’est-ce que Google Web Toolkit ?

Google Web Toolkit (GWT), proposée par Google, est une plate-forme de développement d’applications, sert a créer des applications Ajax en utilisant le Java comme langage de programmation.

GWT met l’accent sur des solutions efficaces et réutilisables aux problèmes rencontrés habituellement par le développement AJAX : difficulté du débogage JavaScript, gestion des appels asynchrones, problèmes de compatibilité entre navigateurs, gestion de l’historique et des favoris, etc.

C’est un logiciel libre distribué selon les termes de la licence Apache 2.0.

Google Web Toolkit, repose sur un principe simple et révolutionnaire : développer, tester, déboguer une application que l’on écrit en Java, et la déployer ensuite, en la traduisant – pour sa partie cliente – en JavaScript.

Google Web Toolkit permet de construire facilement de nouveaux types de Widgets. On trouve dans GWT un ensemble de widgets permettant de construire une interface utilisateur :

  • Panneaux
  • Boutons
  • Cases à cocher
  • Tables / Grilles
  • Boîtes de dialogues
  • Primitive HTML (dont les images et les hyperliens)
  • Menus et barres de menus
  • Fenêtres défilantes
  • Onglets
  • Arbres

Lorsque c’est possible et viable, les widgets GWT utilisent le contrôle natif HTML équivalent (par ex. Checkbox génère un élément INPUT de type checkbox), mais il est aussi possible de construire des widgets entièrement synthétiques.

Bien qu’offrant des fonctionnalités plus évoluées que les composants HTML, la bibliothèque de widgets GWT reste spartiate lorsqu’on veut créer une IHM avancée ; c’est pourquoi des bibliothèques tierces ont vu le jour. On peut citer :

  • Ext-GWT (appelé aussi GXT), un portage de Ext-JS en GWT,
  • GWT Component Library,
  • gwt-ext, un wrapper qui permet d’utiliser les composants Ext-JS en GWT (abandonné depuis par son créateur),
  • GWT Widget Library,
  • GWTiger
  • SmartGWT, un wrapper de la librairie javascript SmartClient
  • Si les wrappers GWT de librairies JavaScript sont souvent riches en composants, ils ne respectent pas la philosophie de GWT qui consiste à générer le code JavaScript entièrement à partir de Java.

Avantages et inconvénients

  • En mode hosted, l’application s’exécute sous forme de bytecode Java tout comme une application normale ; par conséquent toutes les possibilités de débogage natif de Java sont utilisables.
  • L’utilisation du mécanisme de RPC facilite la communication entre le client et le serveur, automatisant complètement la sérialisation des données. Elle requiert toutefois un support spécifique coté serveur. Néanmoins, l’accès à toutes sortes de services est possible via HTTP, en particulier aux Web Services utilisant SOAP et autres services encodant les données avec JSON.
  • Le code Java peut être partagé entre le client et le serveur, en particulier pour les objets transitant entre eux. Cette fonctionnalité est toutefois limitée puisque le client ne supporte qu’un sous-ensemble limité de l’API Java.
  • GWT permet de limiter les échanges avec le serveur à la réception et l’envoi des données métier. La logique applicative peut être entièrement embarquée dans le navigateur client. La réactivité de l’interface graphique est ainsi accrue et la bande passante réseau préservée… Mais le code est parfois plus conséquent et il faut gérer avec attention la problématique de la sécurité.
  • Le code JavaScript généré est d’une taille conséquente mais ne requiert pas l’inclusion de bibliothèques externes. Le code peut être découpé en plusieurs paquets, chacun n’étant téléchargé que lorsque c’est nécessaire.
  • Le code JavaScript généré est difficilement lisible. Cependant, dans l’esprit des concepteurs de GWT, ce code n’est pas destiné à être lu ou optimisé par un humain, mais uniquement par le navigateur ; selon ce point de vue, on peut considérer JavaScript comme l’équivalent de ce qu’est l’assembleur aux langages de haut niveau. Il existe tout de même des options permettant de générer du code moins dense et plus lisible, au détriment de la taille des fichiers générés et de la performance.
  • La phase de compilation GWT est relativement longue, et croît avec le nombre de classes et le nombre de permutations (combinaisons navigateurs+langues). Ceci s’explique par les nombreuses optimisations statiques effectuées par le compilateur GWT. Il est toutefois possible de restreindre le nombre de permutations générées.
  • L’utilisation de GWT ne doit pas faire oublier les aspects sécurité.
  • GWT fait partie des frameworks RIA qui offrent une implémentation au moins partielle d’ARIA permettant de faire face aux problèmes d’accessibilité des interfaces riches.
  • GWT peut être utilisé comme seule technologie Web cliente, ou en conjonction.

Sumit Chandel, un ingénieur développeur qui collabore au projet Google Web Toolkit (GWT) sur la vidéo :

Votes
[Total : 0 votes en moyenne : 0]
PARTAGER
Article précédentGoogle+ est désormais ouvert à tout le monde ! Inscrivez-vous maintenant !
Article suivantSteve Jobs, le génie créatif, un être humain étonnant

Une fille dans l’informatique était mal vue à l’époque de mes études. C’est pour cette raison que l’on m’a cantonné à des rôles secondaires lors des travaux de groupe, notamment celui de centralisateur des informations. Ce rôle central, au final crucial, m’a plu. C’est comme cela que je suis devenue chef de projet. Plus tard, cette attirance pour l’information m’a poussé à suivre des cours de journalisme.
Comme j’avais la propension de centraliser l’actualité technologique, un ami m’a dit un jour : «Emilie, tu peux le faire ». C’est comme cela que je me suis retrouvée embarquée dans l’aventure de linformatique.org. Vu mon boulot, ce sont surtout les nouvelles technologies qui m’intéressent le plus.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here