Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne cite pas suffisamment ses sources (septembre 2012). Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?
Google Web Toolkit (GWT)
Description de l'image Gwt_logo.png.

Informations
Développé par GoogleVoir et modifier les données sur Wikidata
Dernière version 2.10.0 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/gwtproject/gwtVoir et modifier les données sur Wikidata
Écrit en Java et JavaScriptVoir et modifier les données sur Wikidata
Système d'exploitation LinuxVoir et modifier les données sur Wikidata
Type Widget toolkit
Cadre d'application AJAXVoir et modifier les données sur Wikidata
Licence Licence Apache version 2.0Voir et modifier les données sur Wikidata
Site web www.gwtproject.orgVoir et modifier les données sur Wikidata

Google Web Toolkit (GWT) est un ensemble d'outils logiciels développé par Google, permettant de créer et maintenir des applications web dynamiques mettant en œuvre JavaScript, en utilisant le langage et les outils Java. C'est un logiciel libre distribué selon les termes de la licence Apache 2.0.

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.

Principe

GWT est articulé autour d'un concept original : lors de la phase de développement, l'application est écrite en Java de façon classique, dans un environnement de développement intégré Java, et peut être déboguée avec les outils Java habituels. Une fois l'application prête à être déployée, le compilateur GWT la traduit en pur JavaScript, avec support automatique et transparent pour les principaux navigateurs (Internet Explorer, Firefox, Chrome, Safari, Opera). Le code JavaScript généré utilise des techniques d'HTML dynamique et de manipulation du DOM (Document Object Model) pour les aspects dynamiques de l'interface.

Ce principe est rendu possible par les différents composants de GWT :

GWT est un framework qui laisse la liberté au développeur en ne lui imposant pas une structure trop rigide; comme son nom l'indique, il s'agit d'une boîte à outils qui offre des solutions permettant de développer plus facilement des solutions web/AJAX, en profitant des outils et compétences Java existants, et en faisant abstraction de la complexité habituellement liée à ce genre de technologies.

Fiche technique

Widgets disponibles

On trouve dans GWT un ensemble de widgets permettant de construire une interface utilisateur :

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 :

Si les wrappers GWT de bibliothèques 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.

Historique des versions

Environnements de développement

De par sa conception, GWT est indépendant de tout IDE et peut s'intégrer dans n'importe lequel. Cependant, il existe des plugins qui facilitent le développement d'une application GWT :

Enfin, en même temps que GWT 1.6, Google a sorti un plugin pour Eclipse qui intègre à la fois les aspects GWT et Google App Engine.

Avantages et inconvénients

Version 2.0

La version 2.0 de GWT offre plusieurs nouveautés par rapport aux versions précédentes, parmi lesquelles :

Comme le nouveau "development mode" a supprimé la plupart du code écrit spécifiquement pour une plateforme cible, la nouvelle version sera distribuée sous forme d'un unique fichier (contre un par plateforme comme c'était le cas avec les versions précédentes).

Produits concurrents

Approche « à la GWT » (le client est prégénéré) :

Approche RIA classique (HTML et JavaScript générés à partir du serveur) :

Frameworks associés

Notes et références

Annexes

Articles connexes

Liens externes