Google Web Toolkit

De $1

Introduction

GWT est un tookit développé par Google permettant de développer des interfaces riches sur le web. Gmail, Google Maps et la plupart des services proposés par Google utilisent GWT.

Originalité : on code en Java, plus de javascript, de XML, etc... On peut tester son application en stand alone mode avant de la recompiler pour un véritable test en déploiement sous forme d'application web, etc.

Outils de développement

Il existe un plugin, GWT4nb pour Netbeans, alors qu'Eclipse est supporté en natif par la librairie. Mais sachez qu'il existe des plugins commerciaux très efficaces pour construire en WYSIWYG des interfaces graphiques, GWT Designer pour Eclipse par exemple. L'IDE payant IntelliJ Idea est également un très bon produit pour de tels développements, grace au plugin GWT Studio entre autres. 

En TP nous utiliserons NetBeans ou Eclipse.

Resources

Sites web de référence

Quelques démonstrations de sites commerciaux utilisant GWT :

Travaux pratiques

Installer l'environnement, premières applications

Vous allez commencer par créer un petit projet GWT et apprendre à le lancer en mode normal, puis en mode stand alone (100% java, avec émulatiion en swing des interfaces clientes). La structure d'un projet GWT est telle qu'on ne procède pas de la même manière lorsqu'on développe avec Netbeans ou avec Eclipse, vous l'avez vu. Pour Netbeans et Eclipse il existe des  plugins capables de générer un projet type (et d'autres choses), étant donné qu'ils sont différents (celui pour eclipse est fourni par Google), je vous propose donc deux chemins pour le TP, selon que vous êtes sous netbeans ou eclipse (mais les deux sont intéressants).


 Application à étudier : un annuaire en Ajax (non ? Si !)

Pour les utilisateurs de netbeans, récupérez le projet, puis après avoir mis à jour les références (serveur, allez dans les propriétés du projet et indiquez le bon chemin pour le framework GWT puis pour les librairies). Vous risquez d'avoir un peu de mal à le faire tourner au début car il a été écrit pour GWT 1.6 (on est en 1.7). Dans ce cas ne paniquez pas, étudiez le source...

  • GWTAnnuaire.rar : le projet Netbeans, pour voir l'application, une fois que vous l'avez exécutez, accèdez à l'URL : http://localhost:8080/GWTAnnuaire/co.../MonAppli.html (il se peut que le port soit différent pour vous)
  • AnnuaireEclipse.rar : la version eclipse. Il faudra certainement changer la librairie eclipse située dans le classpath car le projet a été développé à l'époque en GWT 1.4 (mais le code est compatible 1.5.xxx)

 Travail à rendre (pas pour les M2 Miage 2009-2010)

Ce sera votre mini projet. Les notes des trois Tps à rendre formeront la note de projet de ce module.

Sujet : un gestionnaire de playlist à la itunes.

  1. Vous ecrirez un service GWT capable de servir des infos relatives à des albums de musique: Artiste, Album, Style/catégorie, Titres et Pochettes d’album. Vous pourrez rajouter d'autres informations si cela vous tente (en extrayant par ex ces infos à partir de fichiers mp3 existants, il existe dans de nombreux langages des extracteurs de tags). On ne demande pas à ce que cette source de données soit modifiable via le web. Vous pourrez la générer sur le serveur avec des outils de votre choix.
    • Note importante : vous n'êtes pas obligés d'utiliser une base de données, JPA, DAO etc... Le but de ce projet n'est pas de tester ce genre d'architecture mais plutot de se faire la main avec GWT. En revanche, si cela vous tente, sachez qu'il faut absolument que le compilateur GWT possède les sources des classes JPA pour pouvoir envoyer des instances d'entity classes dans le client javascript. Ceux qui ne se sentent pas à l'aise avec ces technologies, utilisez une base de données JSON ou XML.
    • Allez voir ce TP qui utilise des classes entities avec GWT si vous voulez tenter le coup : http://argentera.inria.fr/wiki/data/Main/EjbGwt2.jsp
  2. Vous ecrirez un service GWT capable de gérer des playlistes (cf le tableau ci-dessous) côté serveur,
  3. Vous ecrirez en GWT la partie cliente qui permettra de réaliser la gestion des playlist de la manière suivante.
Priorité Nom
10 En tant qu’utilisateur, je peux visualiser la liste des catégories
20 En tant qu’utilisateur, je peux visualiser la liste des artistes
30 En tant qu’utilisateur, je peux consulter la liste des albums d’une catégorie
40 En tant qu’utilisateur, je peux consulter la liste des albums d’un artiste
45 En tant qu’utilisateur, je peux consulter la liste des pistes d’un album
50 En tant qu’utilisateur, je peux rechercher un album
60 En tant qu’utilisateur, je peux consulter la liste des playlists enregistrées
70 En tant qu’utilisateur, je peux charger une playlist existante
80 En tant qu’utilisateur, je peux créer et enregistrer une nouvelle playlist
90 En tant qu’utilisateur, je peux ajouter des pistes à une playlist
95 En tant qu’utilisateur, je peux réordonner les pistes d’une playlist
97 En tant qu’utilisateur, je peux enlever des pistes à une playlist
100 En tant qu’utilisateur, je peux sauvegarder une playlist
110 En tant qu’utilisateur, je peux supprimer une playlist