Qu’est-ce que Google Web Toolkit ?

Hicham EL ALAOUI
Rédigé par Hicham EL ALAOUI

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.

Qu'est-ce que le Google Web Toolkit ?

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.
TAGGED :
Laisser un commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Quitter la version mobile