GWT

De Ensiwiki
Aller à : navigation, rechercher
GWT
GWT.png
Développeur Google

Dernière version 2.1.0

Environnement Windows,MacOS,Linux

Type Outil de développement web
Licence Apache license v. 2.0

Site Web http://code.google.com/intl/fr/webtoolkit/

Tux.png  Linux Apple.png  MacOS X Windows.png  Windows 

Introduction

Google Web Toolkit (GWT) est un outil de développement web né en 2006. Il permet le développement d'applications Ajax (Asynchronous JavaScript and XML) depuis Java.

L'intérêt de GWT par rapport à d'autres frameworks Ajax est son credo, "Pay for what you use". En effet, le JavaScript téléchargé au lancement de l'application est nativement compatible avec le navigateur, pas besoin d'astuces pour faire en sorte qu'un seul code JavaScript soit compatible avec tous les navigateurs.

Outils

Pour développer une application web avec les outils GWT, une seule adresse, le site officiel de GWT.

Le SDK (Software Development Kit) est le minimum. Il contient les bibliothèques de développement Java, et le compilateur qui génère le JavaScript de la partie client.

Le Plugin pour Eclipse n'est pas nécessaire, car le SDK contient des outils en ligne de commande pour la compilation et le mode développement.

En revanche, il permet un débuggage très agréable pour le mode développement ; quelques conseils d'utilisation avec Eclipse sont détaillés plus bas.

Le mode développement

Si on doit retenir un avantage de GWT pour le développeur, c'est bien celui-là.

En cours de développement, l'application est écrite en Java, et GWT se présente comme une simple bibliothèque. Il est possible d'utiliser un environnement de développement intégré, et le débuggage se fait comme pour n'importe quelle application Java.

Au premier lancement de l'application en mode développement dans votre navigateur, il vous est demandé d'installer le Google Web Toolkit Developer Plugin, nécessaire au mode développement de GWT. Ce plugin est disponible pour Firefox, Internet Explorer, Chrome et Safari.

Bien entendu, l'application testée en mode développement est moins performante qu'une fois déployée, en raison des interactions entre le bytecode Java et le navigateur (le projet n'est pas encore compilé).

Communication client / serveur

Bien qu'initialement codé en Java, le client est par la suite compilé en JavaScript. Ceci implique un certain nombre de limitations au niveau des bibliothèques utilisables (détaillées ici).

En revanche, le serveur n'a pas de telles limitations (sauf si on souhaite effectuer un déploiement avec le Google AppEngine). On peut donc effectuer tous les traitements possibles à son niveau.

La communication entre client et serveur s'effectue au moyen du protocole RPC (Remote Procedure Call). Le client définit deux interfaces pour les appels au serveur, et le serveur doit les implémenter pour que l'application puisse fonctionner.

Les requêtes vers le serveur sont asynchrones (Ajax), ce qui permet de commencer le rendu en attendant la réponse du serveur.

Développer en GWT avec Eclipse

Le plugin GWT

Installer le Plugin GWT d'Eclipse est simplissime.

Pour Eclipse 3.5 (Galileo), aller dans Help > Install New Software... puis entrer l'url http://dl.google.com/eclipse/plugin/3.5 dans le champ Work with.

Pour d'autres versions d'Eclipse ou pour plus d'informations, se référer au site officiel.

Il existe par ailleurs d'autres plugins GWT pour Eclipse ou Netbeans, certains permettant de designer l'application graphiquement.

Importer un projet GWT non compilé

Si vous voulez importer votre projet en cours de développement sur une autre machine, il n'est pas judicieux de l'importer 'tel quel' (chemins absolus vers les bibliothèques importées, etc.).

Une solution simple pour éviter tout désagrément est de créer un nouveau projet de type Web Application (disponible une fois le plugin installé) du même nom que le projet à importer, et d'importer dans src et war les dossier src et war du projet à importer. Reste à ajouter manuellement les bibliothèques tierces éventuelles pour que l'application soit fonctionnelle.

Déploiement sur un serveur Tomcat

Le déploiement d'une application GWT vers un serveur Tomcat est également très simple.

Pour commencer, il faut compiler l'application, en cliquant sur la boîte à outils rouge dans la barre de menu. La compilation à une durée de l'ordre de la dizaine de minutes.

Une fois l'application compilée, il faut créer une archive .war (Web Archive) à partir du dossier war du projet.

AttentionL'archive doit contenir uniquement le contenu de war, et non war lui-même !

Sous linux, accéder à ce dossier à l'aide d'un terminal, et exécuter la commande

zip -r nomProjet.war *

L'archive obtenue peut alors être chargée sur le serveur Tomcat.

AttentionAppeler un fichier contenu dans le dossier war depuis le code Java du serveur fonctionne en mode développement, mais pas une fois l'application déployée ; un contournement possible est l'utilisation de chemins absolus compatibles avec le serveur de déploiement. Il ne faut pas oublier malgré tout d'autoriser tomcat à accéder à ces fichiers.


Bibliothèques tierces

GWT est une technologie récente, mais les projets parallèles liés à cette technologie sont déjà nombreux et prometteurs.

En voici quelques uns :

  • Ext-GWT (ou GXT) : réécriture en GWT de la librairie JavaScript Ext JS. Fournit de nombreux widgets avancés pour GWT.
  • gwt-dnd : bibliothèque permettant l'implémentation de drag'n drop dans une application GWT.
  • gwt-cal : bibliothèque permettant l'insertion d'un calendrier dans une application GWT.

Il existe également des bibliothèques qui n'ont de GWT que l'interface Java proposée. Ce sont des bibliothèques d'encapsulation, qui permettent d'utiliser des widgets, certes élaborés, mais présentant les failles JavaScript de leur librairie d'origine, comme

  • SmartGWT : encapsulation de la librairie SmartClient.

Documents utiles

  • Programmation GWT 2 Développer des applications RIA et Ajax avec Google Web Toolkit - S. JABER - 1e éd. Paris : Eyrolles, 2010, 484p. (Blanche)

Disponible en 6 exemplaires à la BU Science