Introduction à GWT

1 314 vues

Publié le

Introduction à GWT
Conference by Christian Goudreau, at WAQ 2015.
Christian Goudreau is BEE-EO AND CO-FOUNDER
at Arcbees.
You can follow Christian on Twitter : @imchrisgoudreau


Christian Goudreau, ArcBees’ CEO, is a self-made entrepreneur with significant experience in project management. Christian has been managing major software development projects since his early teens, and therefore has quickly learned how to juggle heavy responsibilities and deliver.

A talented guest speaker, recognized expert in software architecture and developer tools, his services are much sought-after, not only in Quebec but also in Europe and the United States, where he takes great pleasure in sharing his technical knowledge and his passion for business.

Christian Goudreau was named Young Business Person of the Year, technology & research division, at the Jeune personnalité d’affaires Banque Nationale competition organized by the Jeune chambre de commerce de Québec (JCCQ), in 2012. He was also awarded the Creativity and Innovation Prize, and the Grand Prize at the 2013 Annual LOJIQ awards (the Quebec International Youth Offices).

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 314
Sur SlideShare
0
Issues des intégrations
0
Intégrations
45
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction à GWT

  1. 1. Introduction à GWT La technologie derrière Google Adwords, Spreadsheet, Inbox et plus encore! CHRISTIAN GOUDREAU WAQ 2015
  2. 2. Christian Goudreau Co-Fondateur et Bee-EO Arcbees +ChristianGoudreau @imchrisgoudreau christian.goudreau@arcbees.com
  3. 3. Dans une galaxie...
  4. 4. l’Empire
  5. 5. 2006 Découverte de la planète GWT
  6. 6. Pourquoi ?
  7. 7. Google Adwords
  8. 8. Dans la même veine Autres langages : ➔ Pyjs (Python to JS) ➔ emscripten (C++ to JS) ➔ jsil (.net to JS) ➔ ClojureScript (Clojure to JS) ➔ dart2js Javascript : ➔ CoffeeScript ➔ TypeScript ➔ Google Closure
  9. 9. La machine virtuelle du Web
  10. 10. Box2D Performance Benchmark
  11. 11. Box2D Code Size
  12. 12. Box2D Code Size
  13. 13. Google Inbox
  14. 14. public class HelloWorld implements EntryPoint { @Override public void onModuleLoad() { $("p").click(new Function() { @Override public void f() { $(this).slideUp(); } }); } }
  15. 15. CodeSplit
  16. 16. Historique de navigation & SEO
  17. 17. ➔ MVP ➔ Rest-Dispatch ➔ Historique de navigation
  18. 18. MODEL PRESENTER VIEW MVP Pattern
  19. 19. REST Dispatch ➔ JAX-RS ➔ Command pattern ➔ Implémentation la plus simple possible
  20. 20. @Path(“/api/dashboard”) public interface DashboardService { @GET @Path(“/{organizationId}”) Dashboard getByOrganizationId(@PathParam(“organizationId”) int organizationId); @PUT @Path(“/{organizationId}”) void update(@PathParam(“organizationId”) int organizationId, Dashboard dashboard); } private void loadTemplate() { dashboardService.withCallback(new AbstractAsyncCallback<Dashboard>() { @Override public void onSuccess(Dashboard result) { } }).getByOrganizationId(currentUser.getOrganizationId()); }
  21. 21. Librairies disponibles
  22. 22. Performance
  23. 23. Et Angular ?
  24. 24. Singular !
  25. 25. Et GWTP ?
  26. 26. Et mes librairies Javascript ?
  27. 27. GWT 2.7
  28. 28. JsInterop !
  29. 29. @JsType(prototype = "$wnd.Dashboard") public interface Dashboard { public static class Builder { public static native Dashboard create(String modulePath) /*-{ return new $wnd.Dashboard(modulePath); }-*/; } void clear(); void reset(); void render(); void redraw(); }
  30. 30. Merci
  31. 31. QUESTIONS ?

×