Introduction / retour d'expérience : GWT

Documents pareils
Celui qui vous parle. Yann Vigara

Formation : WEbMaster

Point sur les solutions de développement d apps pour les périphériques mobiles

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Devenez un véritable développeur web en 3 mois!

RAPPORT DE STAGE GWT PRISE EN MAIN SERVLET - TEST DES DAO TELOSYS PLUGIN ECLIPSE WIZARD DATASET TELOSYS

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

4D Web 2.0 Pack DATA LIVES HERE. TM. Internet Riche et Solutions Mobiles en toute simplicité. 4D Ajax Framework 4D Ajax for Dreamweaver 4D for Flex

les techniques d'extraction, les formulaires et intégration dans un site WEB

Présentation du Framework BootstrapTwitter

Programmation Web. Madalina Croitoru IUT Montpellier

Android. Présentation d Android. Florent Garin

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Le stockage local de données en HTML5

GWT à l'épreuve du feu. by Sami Jaber (DNG Consulting)

CONNEXION. Une interface de connexion sécurisée, simple et accessible même depuis un appareil mobile. CONNEXION /

INGÉNIEUR - DÉVELOPPEUR SENIOR PHP. 28 ans - 8 ans d'expérience

Optimiser les performances d un site web. Nicolas Chevallier Camille Roux

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Sébastien Sougnez 24/12/ / s.sougnez@areaprog.com 2 ans et demi d expérience

Optimiser pour les appareils mobiles

Environnements de développement (intégrés)

Logiciel de gestion d emploi du temps

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Programme ASI Développeur

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Introduction à. Oracle Application Express

CQP Développeur Nouvelles Technologies (DNT)

Bureautique Initiation Excel-Powerpoint

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Architecture Orientée Service, JSON et API REST

Android 4 Les fondamentaux du développement d'applications Java

Découvrir le CMS. et l utiliser dans une approche pro!

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP. 27 ans - 6 ans d'expérience

AngularJS pour une application d'entreprise

Canvas 3D et WebGL. Louis Giraud et Laetitia Montagny. 9 Avril Université Lyon 1

Une solution opensource d'affichage dynamique - XIBO

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

La base de données XML exist. A. Belaïd

Bonnes pratiques de développement JavaScript

PHP et LeMonde.fr : passé, présent et avenir Olivier Grange-Labat <grange@lemonde.fr>

BES WEBDEVELOPER ACTIVITÉ RÔLE

WordPress, thèmes et plugins : mode d'emploi

Armand PY-PATINEC 2010

Présentation de la gamme de produits et manuels numériques

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Nouveautés joomla 3 1/14

Applications distribuées: le retour du client "riche"

09 nov Retour d'expérience sur l'implémentation d'une plateforme Drupal / Drupal Commerce

Développement tablette Android. SophiaConf2011 Par Arnaud FARINE

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Java pour le Web. Cours Java - F. Michel

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Stage : Développement du contenu Web

Projet de développement

Catalogue Formations Jalios

Création d une application JEE

Table des matières Introduction Démarrage Les composants graphiques... 26

Gestion des différentes tailles d écran

Intégration du Web 2.0 dans les solutions IBM

4. SERVICES WEB REST 46

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

Technologies Web avancées. ING1 SIGL Technologies Web avancées

JOnAS Day 5.1. Outils de développements

ECLIPSE ET PDT (Php development tools)

de logiciels Web 2.0, SaaS Logiciels collaboratifs Portails pour entreprises Développement iphone, Android WebApp HTML5 Mobile marketing

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

ANGULAR JS AVEC GDE GOOGLE

Prototyper un site web avec Awestruct et Boostrap

Présentation de solutions de Progiciels de Gestion d'epn Forum des Usages Brest 2010

Architectures web/bases de données

Modernisation et développement d applications IBM i Stratégies, technologies et outils

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

RESPONSIVE WEB DESIGN

Iphone vs. Android. Mardi 17 Novembre 2009 Paris, la Défense. Xavier PARADON, Directeur Technique Valtech Training

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Utilisation de Jakarta Tomcat

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Mercredi 15 Janvier 2014

Projet Java EE Approfondi

1.2 - Définition Web 2.0 ( wikipedia )

Applications et Services WEB: Architecture REST

Cahier des charges : gestion de projets agiles. Programmation d Algorithmes Distribués (PAD)

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Transcription:

Introduction / retour d'expérience : GWT Qu'est ce que le Google Web Toolkit? Framework Ajax accessible et productif Pour quels projets? Interface riche et ergonomique Visualisation d'un grand nombre de données Thomas Lacroix, MIG, 2012

Avantages applications web riches VS applications autonomes : Distribution de l'application web facile Processus d'installation inexistant Mise à jour automatique / transparent Communication serveur par défault Plus de contrôle sur architecture des données côté serveur

Ajax VS HTML classique : 3 caractéristiques Rafraîchissement partiel de la page (DOM) Dialogue avec le serveur de façon asynchrone Transfert charge processeur sur client

Points forts de GWT : Licence libre Apache Compilateur Java -> Javascript (voir après) Librairie Widgets et Layouts (voir après) Mode débogage (cycle change/test/debug) / mode production Mécanismes communication server (RPC, JSON,...) Integration avec autres technologies: Javascript natif, HTML5, server Java, PHP, Ruby...

Fiche technique GWT (suite) Majorité de navigateurs supportés Gestion historique navigation / bookmarks Support de l'internationalisation Ecosystème / Communauté Open Source: bibliothèques JAR mobile, tablette, graphique,... Fonctions avancées pour les pros (deferred binding, API DOM, Javascript Native Interface,...) Structuration du code libre: MVC, MVP, activité et places,...

Intérêt de compilation Java -> Javascript Outils de dévelopement autour de Java : IDE, javadoc, UnitTest, JAR réutilisable, Débuging, profiling... Mécanisme de permutation (voir après) Optimisation du javascript (vitesse éxécution et téléchargement initiale) : inligning, obfuscation,... Pas de compromis entre code source maintenable et application optimisée

Mécanisme de permutation de GWT

Quelles sont les différentes étapes pour construire une application GWT?

Etape 1 : Définir zones conteneurs Redimensionnement : %, PX, EM, ascenseur.. possiblilité de les imbriquer (qq bugs) Accordéon

Soit code java public class StackPanelExample implements EntryPoint { public void onmoduleload() { // Create a stack panel containing three labels. StackPanel panel = new StackPanel(); panel.add(new Label("Foo"), "foo"); panel.add(new Label("Bar"), "bar"); panel.add(new Label("Baz"), "baz"); // Add it to the root panel. RootPanel.get().add(panel); } }

Soit code xml (récupération variables coté java) <ui:style>.deco {border: 3px outset #838B8B;} </ui:style> <g:docklayoutpanel unit='em' ui:field='rootpanel'> <g:north size='5' stylename="deco"/> <g:button ui:field='hibutton' text="hi"> </g:north> <g:center> <g:verticalpanel spacing='5' height='100%'> <g:cell horizontalalignment='align_center'> <g:mycustomwidget/> </g:cell>...

Soit design by WYSIWYG :

Etape 2 : mettre des vrais widgets dedans Button et text de différentes sortes, menu, arbres, auto-completion, sliders, calendrier... Tree Suggestion Box Auto completion

Widgets grande quantité de données : CellTable

Widgets HTML5 Canvas Audio WebGL Video

Etape 3 : style, animation, transition effets avec CSS 3

Etape 4 : gestion evenements, algorithmiques et code glue Que ce passe-t-il quand on clique? Button b = new Button("Click Me"); b.addclickhandler(new ClickHandler() { public void onclick(clickevent event) { // handle the click event } }); Example de API HTML5 : webworker, offline, drag and drop, browser storage and database, geolocation, file,...

Etape 5 : communication serveur AsyncCallback<Gene> callback = new AsyncCallback<Gene>() { public void onfailure(throwable caught) { // do some UI stuff to show failure } public void onsuccess(gene genereturned) { // do some stuff with genereturned } }; callformyservice.getgenewithid(id, callback);

Etape 5 : communication serveur base de donnée (ie : table genes) GeneItem mapping objet > nom (String) > start (Integer) sérialisation serveur RPC, JSON,... client : compilation Java > Javascript GeneWidget > nom (Zone de Texte) > start (position absolue sur graphique) désérialisation GeneItem setresult() > nom (String) > start (integer)

Historique et futur de GWT Version 1 : 2006 Version 2.5 RC : été 2012 2.5 = dernière version développée/pilotée à 100% par Google -> création d'un commité de pilotage regroupant plusieurs compagnies et developpeurs

Formation GWT 2 19, 20 et 21 Novembre 2012 Salle de formation de la plateforme Migale (Bât. 233) Coût global : ~ 430 euros / Coût unité : ~ 140 euros (imputable sur le budget 2013) Programme Qu'est-ce qu'un projet GWT? Introduction à GWT 2 Composants graphiques de GWTCommunication Client/Serveur avec GWT JavaScript Native Interface JSNI GWT 2 Best practices GWT Ecosystème GWT HTML5 / CSS3 et GWT Lier GWT aux frameworks Java