SlideShare une entreprise Scribd logo
GWT
Google Web Toolkit

Bouchon Julien
Faugere Matthieu
Plan
• Introduction
• Avantages et inconvénients
• Concurrents
• Structure d’un ‘Hello World’
• UI Binders
• Le design pattern MVP
• Conclusion
Historique
•

Création en 2006 par Bruce Johnson et Joel Webber

•

2006 : Rachat de la start-up par Google → Version 1.0

•

Aujourd’hui : Version 2.5

•

OpenSource depuis la version 1.0
Présentation
• Exemples : gmail, google app, google map
• Framework
–
–

Ecrit en Java
Compilé par GWT en Javascript

• Utilisation de widgets
–

i.e. composants graphiques

• Portabilité
–

Une application développée avec GWT est automatiquement supportées
par tous les navigateurs
Avantages
• Développement en Java
• Portabilité ‘automatique’
• Optimisation
–
–

Le Javascript produit est compacté au maximum
Seul la version du .js correspondant au navigateur du client est envoyé (pas de ‘if’
pour assurer la portabilité)

• Deux modes
–
–

Un mode développement , où l’application est exécuté en Java, ce qui permet
d’utiliser le débogage natif de java
Un mode déploiement, où le code est compilé en Javascript
Inconvénients
• Code Javascript généré illisible
• Phase de compilation lente dans les deux modes
• Prise en main difficile
• Lacunes des widgets de base
→ nécessité d’utiliser des bibliothèques extérieures
Technologies concurrentes FLEX
• Adobe
• Flash
• Avantage
•
•

Richesse des composants graphiques
Possibilité de faire du développement mobile

• Inconvénient
•

Nécessite de connaître Flash
Technologies concurrentes Silverlight
• Microsoft
• C#
• Avantages
•
•

bonne gestion du multimedia(photo, video)
prise en main facile si on connait le c#

• Inconvénients
•

obligation d'installer un plugin

•

n'est plus soutenu par microsoft
Installer GWT sous Eclipse

 Sous Eclipse

> Help
> Install new
software
 http://dl.google.com
/eclipse/plugin/3.7
Module GWT : Structure

•

Src:
–
–
–

•

Package contenant le xml de
configuration du module
Package contenant les fichiers
sources coté client
Package contenant les fichiers
sources coté serveur

War : C’est l’ ‘image’ du déploiement
de l’application. Respecte le standard
war et est compatible avec la plupart
des serveurs applicatifs (tomcat,
jetty…)
–
–
–

Le contenu statique : l’hôte html
Les .jar pour le code coté serveur
Un fichier web.xml pour
configurer d’éventuelles servlets
Descripteur du module
Point d’entrée
Html hôte
Css
Rendu
Rendu
UIBinder
Créer une interface en GWT
–

Une première méthode consiste à une implémentation similaire à la construction
d’un écran en SWING (comme dans l’exemple précédent)

–

Cette méthode présente des inconvénients:
•
•

–

Relecture et maintenance difficile à cause de la densité de code généré
Illisible pour un designer qui veut travailler sur du html ou du xml

L’alternative, plus évoluée, est UIBinder qui va séparer la partie statique de la
partie dynamique respectivement dans un fichier xml et un fichier java
Structure
• Un fichier xml pour la

partie statique
• Un fichier Java pour la

partie dynamique
Exemple 1
Exemple 2 - xml
Exemple 2 - java
Point d’entrée
Rendu des exemples 1 et 2
Design Pattern MVP
MVC

MVP
Design Pattern MVP
Le Model regroupe les données métier qui vont être

affichées et/ou gérées par l'écran. Il est identique au
Model du MVC.
La View est l'interface graphique de l'écran (cadres,
composants, style, etc...).
Le Presenter gère le comportement des
événements utilisateur (clics, sélections, saisies de
texte, ...) ou encore les liens avec les autres écrans
Exemple Gestion Contacts
Affichage de la liste

Affichage d’un contact
Architecture du code
Arborescence de fichiers
Client

•Création du service RPC
•Création du gestionnaire d’événements
•Création de l’AppController
•On passe le rootPanel à l’AppController
Model
Model Contact

Model ContactDetails
Presenter
On a 1 presenter pour 1 view
Le presenter doit gérer les événements liés aux

éléments de l’interface utilisateur de sa view.
Presenter Contact
Ce Presenter doit :
Répondre au clic boutton
Remplir la liste
Répondre au clic sur un
contact
Display

• Lien entre view et presenter
• Sera implémenter dans la view
Remplir la liste

Répondre au clic
View
La vue crée les

composants graphiques
Concrétise les fonctions

de l’interface display de
son présenter
Event

• 1 event et 1 eventHandler

par événement de notre
application
• Chaque event

implémente
getAssociatedType et
dispatch
AppControler
Gère l’affichage des pages
Gère l’historique et l’état du système
Se sert des événements pour définir l’état du système
Le Presenter crée
l’événement

L’AppControler le
récupère
Changement de status
Conclusion
• Outil permettant de développer de grosses

applications
• Projets structurés
• Mise en œuvre de MVP
• Permet également de développer des applications
avec mgwt
Sources
•

Documentation officielle de GWT
http://www.gwtproject.org/

•

Présentation de Celinio Fernandes sur GWT
http://fr.slideshare.net/longbeach757/presentation-of-gwt-24

•

Tutoriels de Lars Vogel (HelloWorld, UIBinders…)
http://www.vogella.com/articles/GWT/article.html

 Blog de Mikael krok

http://mikaelkrok.net/le-design-pattern-mvp-et-gwt-1-introduction/
 Tutoriel ui binder et mvp

https://code.google.com/p/niiuzu/wiki/TutoUiBinderMVP

Contenu connexe

PDF
Etre présent sur le Web
PPTX
Comparatif CMS
PPT
We❤️SEO 2019 : WebPerf et SEO
PPTX
Cours Licence Pro (Système de gestion de contenu) Partie 1
ODP
Presentation cms
PDF
Les systèmes de gestion de contenus des sites Internet ou CMS
PPT
Comparaison Drupal - eZpublish
PPTX
Cours Licence Pro (Système de gestion de contenu) Partie 2
Etre présent sur le Web
Comparatif CMS
We❤️SEO 2019 : WebPerf et SEO
Cours Licence Pro (Système de gestion de contenu) Partie 1
Presentation cms
Les systèmes de gestion de contenus des sites Internet ou CMS
Comparaison Drupal - eZpublish
Cours Licence Pro (Système de gestion de contenu) Partie 2

Tendances (20)

PDF
Comment choisir son cms
PDF
Faire mieux avec Joomla! 3.5
PPT
content management system
PPTX
KEY
Histoires de CMS
PPTX
Initiation Webperf : Comprendre, analyser et optimiser les performances web F...
PPTX
Quel CMS pour Quel Projet?!
PPT
jQuery Mobile & Applications Web
PPTX
Fichier, Nouveau projet… Et après ?
PPT
Systèmes de Gestion de Contenu (SGC)
PPT
CMSday 2013 - Xwiki, un CMS collaboratif
PDF
Formation sharepoint 2013 développement sharepoint 2013
PPSX
HTML 5, CSS 3 au service du web | Semaine du web Alger (Algérie)
PPTX
Cms & e commerce
PDF
Les performances Web mobile
PDF
Comment le portail web d'entreprise peut contribuer à ameliorer la communicat...
PPT
Du site Web au portail d'entreprise
PDF
Déboguer une application web avec FirePHP
PDF
Deboguer Avec Firephp
Comment choisir son cms
Faire mieux avec Joomla! 3.5
content management system
Histoires de CMS
Initiation Webperf : Comprendre, analyser et optimiser les performances web F...
Quel CMS pour Quel Projet?!
jQuery Mobile & Applications Web
Fichier, Nouveau projet… Et après ?
Systèmes de Gestion de Contenu (SGC)
CMSday 2013 - Xwiki, un CMS collaboratif
Formation sharepoint 2013 développement sharepoint 2013
HTML 5, CSS 3 au service du web | Semaine du web Alger (Algérie)
Cms & e commerce
Les performances Web mobile
Comment le portail web d'entreprise peut contribuer à ameliorer la communicat...
Du site Web au portail d'entreprise
Déboguer une application web avec FirePHP
Deboguer Avec Firephp
Publicité

En vedette (20)

PPTX
Sara afailal
PDF
Premiers pas
PDF
Ils cherchent encore la bête !
PPT
Cruzadas 1
PDF
Gestion et valorisation des produits forestiers non ligneux en faveur des femmes
PPT
Deportes
PDF
memoirecqcam-oct2007
PDF
Sexta secundaria
PPT
Innovacion Tecnoliga Y Hospital
PPS
Filosofiaoriental
PDF
Pv final. master1
PDF
Resolucion Provisional Admitidos Y Excluidos Religion
PPTX
Expo virtuelle-guerre-14-48 debut
PDF
Gestion de crise lac méganic
PPTX
Primeras civilizaciones versión 2013
PPTX
Componente práctico – Momento 4 - Fernando Hernandez
PDF
Corrige math s1-s3_r_1er_gr_2013
PPS
Lo Efimero
Sara afailal
Premiers pas
Ils cherchent encore la bête !
Cruzadas 1
Gestion et valorisation des produits forestiers non ligneux en faveur des femmes
Deportes
memoirecqcam-oct2007
Sexta secundaria
Innovacion Tecnoliga Y Hospital
Filosofiaoriental
Pv final. master1
Resolucion Provisional Admitidos Y Excluidos Religion
Expo virtuelle-guerre-14-48 debut
Gestion de crise lac méganic
Primeras civilizaciones versión 2013
Componente práctico – Momento 4 - Fernando Hernandez
Corrige math s1-s3_r_1er_gr_2013
Lo Efimero
Publicité

Similaire à Gwt final (20)

PPT
Cours du soir_gwt
PDF
Gwt fast overview_v1
PDF
Formation gwt
PPT
Google Web Toolkit - GWT
PPT
GWT Principes & Techniques
PDF
Presentation de gwt maven
PDF
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
PPT
Gdd07 Gwt Dig
PPTX
Presentation of GWT 2.4 (PowerPoint version)
PDF
20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK
PDF
Presentation of GWT 2.4 (PDF version)
PDF
Présentation Rex GWT 2.0
PDF
TP GWT JDEV 2015
PDF
GWT, quoi de neuf? Présentation au GDG/GTUG Montréal - 26 juin 2013
PDF
Gwt oxiane-novae-lr
PPT
Google Web Toolkit 1.5 Presentation Web Creative Common
PDF
Gwt intro-101
PDF
Introduction à GWT - GTI780 & MTI780 - ETS - A09
PDF
Introduction à GWT - GTI780 & MTI780 - ETS - A08
PDF
Uni.sherbrooke 2015 créez la meilleur application grâce à gwt, gwtp et j...
Cours du soir_gwt
Gwt fast overview_v1
Formation gwt
Google Web Toolkit - GWT
GWT Principes & Techniques
Presentation de gwt maven
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Gdd07 Gwt Dig
Presentation of GWT 2.4 (PowerPoint version)
20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK
Presentation of GWT 2.4 (PDF version)
Présentation Rex GWT 2.0
TP GWT JDEV 2015
GWT, quoi de neuf? Présentation au GDG/GTUG Montréal - 26 juin 2013
Gwt oxiane-novae-lr
Google Web Toolkit 1.5 Presentation Web Creative Common
Gwt intro-101
Introduction à GWT - GTI780 & MTI780 - ETS - A09
Introduction à GWT - GTI780 & MTI780 - ETS - A08
Uni.sherbrooke 2015 créez la meilleur application grâce à gwt, gwtp et j...

Dernier (7)

PDF
Modems expliqués- votre passerelle vers Internet.pdf
PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PDF
FORMATION EN Programmation En Langage C.pdf
PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
PDF
presentation_with_intro_compressee IEEE EPS France
Modems expliqués- votre passerelle vers Internet.pdf
Tendances tech 2025 - SFEIR & WENVISION.pdf
Presentation_Securite_Reseaux_Bac+2.pptx
FORMATION EN Programmation En Langage C.pdf
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
presentation_with_intro_compressee IEEE EPS France

Gwt final

  • 1. GWT Google Web Toolkit Bouchon Julien Faugere Matthieu
  • 2. Plan • Introduction • Avantages et inconvénients • Concurrents • Structure d’un ‘Hello World’ • UI Binders • Le design pattern MVP • Conclusion
  • 3. Historique • Création en 2006 par Bruce Johnson et Joel Webber • 2006 : Rachat de la start-up par Google → Version 1.0 • Aujourd’hui : Version 2.5 • OpenSource depuis la version 1.0
  • 4. Présentation • Exemples : gmail, google app, google map • Framework – – Ecrit en Java Compilé par GWT en Javascript • Utilisation de widgets – i.e. composants graphiques • Portabilité – Une application développée avec GWT est automatiquement supportées par tous les navigateurs
  • 5. Avantages • Développement en Java • Portabilité ‘automatique’ • Optimisation – – Le Javascript produit est compacté au maximum Seul la version du .js correspondant au navigateur du client est envoyé (pas de ‘if’ pour assurer la portabilité) • Deux modes – – Un mode développement , où l’application est exécuté en Java, ce qui permet d’utiliser le débogage natif de java Un mode déploiement, où le code est compilé en Javascript
  • 6. Inconvénients • Code Javascript généré illisible • Phase de compilation lente dans les deux modes • Prise en main difficile • Lacunes des widgets de base → nécessité d’utiliser des bibliothèques extérieures
  • 7. Technologies concurrentes FLEX • Adobe • Flash • Avantage • • Richesse des composants graphiques Possibilité de faire du développement mobile • Inconvénient • Nécessite de connaître Flash
  • 8. Technologies concurrentes Silverlight • Microsoft • C# • Avantages • • bonne gestion du multimedia(photo, video) prise en main facile si on connait le c# • Inconvénients • obligation d'installer un plugin • n'est plus soutenu par microsoft
  • 9. Installer GWT sous Eclipse  Sous Eclipse > Help > Install new software  http://dl.google.com /eclipse/plugin/3.7
  • 10. Module GWT : Structure • Src: – – – • Package contenant le xml de configuration du module Package contenant les fichiers sources coté client Package contenant les fichiers sources coté serveur War : C’est l’ ‘image’ du déploiement de l’application. Respecte le standard war et est compatible avec la plupart des serveurs applicatifs (tomcat, jetty…) – – – Le contenu statique : l’hôte html Les .jar pour le code coté serveur Un fichier web.xml pour configurer d’éventuelles servlets
  • 14. Css
  • 15. Rendu
  • 16. Rendu
  • 17. UIBinder Créer une interface en GWT – Une première méthode consiste à une implémentation similaire à la construction d’un écran en SWING (comme dans l’exemple précédent) – Cette méthode présente des inconvénients: • • – Relecture et maintenance difficile à cause de la densité de code généré Illisible pour un designer qui veut travailler sur du html ou du xml L’alternative, plus évoluée, est UIBinder qui va séparer la partie statique de la partie dynamique respectivement dans un fichier xml et un fichier java
  • 18. Structure • Un fichier xml pour la partie statique • Un fichier Java pour la partie dynamique
  • 20. Exemple 2 - xml
  • 21. Exemple 2 - java
  • 25. Design Pattern MVP Le Model regroupe les données métier qui vont être affichées et/ou gérées par l'écran. Il est identique au Model du MVC. La View est l'interface graphique de l'écran (cadres, composants, style, etc...). Le Presenter gère le comportement des événements utilisateur (clics, sélections, saisies de texte, ...) ou encore les liens avec les autres écrans
  • 26. Exemple Gestion Contacts Affichage de la liste Affichage d’un contact
  • 29. Client •Création du service RPC •Création du gestionnaire d’événements •Création de l’AppController •On passe le rootPanel à l’AppController
  • 31. Presenter On a 1 presenter pour 1 view Le presenter doit gérer les événements liés aux éléments de l’interface utilisateur de sa view.
  • 32. Presenter Contact Ce Presenter doit : Répondre au clic boutton Remplir la liste Répondre au clic sur un contact
  • 33. Display • Lien entre view et presenter • Sera implémenter dans la view
  • 35. View La vue crée les composants graphiques Concrétise les fonctions de l’interface display de son présenter
  • 36. Event • 1 event et 1 eventHandler par événement de notre application • Chaque event implémente getAssociatedType et dispatch
  • 37. AppControler Gère l’affichage des pages Gère l’historique et l’état du système Se sert des événements pour définir l’état du système
  • 40. Conclusion • Outil permettant de développer de grosses applications • Projets structurés • Mise en œuvre de MVP • Permet également de développer des applications avec mgwt
  • 41. Sources • Documentation officielle de GWT http://www.gwtproject.org/ • Présentation de Celinio Fernandes sur GWT http://fr.slideshare.net/longbeach757/presentation-of-gwt-24 • Tutoriels de Lars Vogel (HelloWorld, UIBinders…) http://www.vogella.com/articles/GWT/article.html  Blog de Mikael krok http://mikaelkrok.net/le-design-pattern-mvp-et-gwt-1-introduction/  Tutoriel ui binder et mvp https://code.google.com/p/niiuzu/wiki/TutoUiBinderMVP