Upcoming SlideShare
Loading in...5







Total Views
Views on SlideShare
Embed Views



1 Embed 1

http://www.slideshare.net 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • Better user experience
  • Compiled javascript is optimized / minified Only the necessary javascript is downloaded by the browser IE downloads only javascript for IE, Firefox downloads only javascript for Firefox Unused APIs are removed from the compiled javascript
  • Real-world users: Have dial-up They click items furiously They don’t do what you think they should do They hit the back button

200804_DevHive_GWT.ppt 200804_DevHive_GWT.ppt Presentation Transcript

  • MIKE BURBA FOUNDER Google Web Toolkit APRIL 17 TH , 2008
  • Acknowledgements
    • Portions of this presentation were borrowed with permission from the following presentations:
    • Bruce Johnson, GWT Tech Lead, Google
      • Fast, Easy, Beautiful: Pick Three - Building User Interfaces with GWT
      • Writing Big Apps with GWT
      • http:// code.google.com/webtoolkit/presentations.html
    • Didier Girard, CTO, SFEIR
      • Introduction to the Google Web Toolkit
      • http://www.slideshare.net/dgirard/introduction-to-google-web-toolkit?src =embed
  • DevHive is a SaaS platform for custom business apps
    • Platform-as-a-Service
    • Business app building blocks
    • Software marketplace
  • Demonstration
  • Why Ajax?
  • At first, Ajax is really cool SOURCE: Didier Girard
  • But, what about…
    • … cross-browser
    • … memory leaks
    • … loading latency
    • … Javascript PhD
    • … Ajax IDE
    • … bugs (javascript is a dynamic language)
    • … cross browser javascript debugger
    • … security
    SOURCE: Didier Girard
  • The Solution: GWT
    • Build Ajax apps with Java
    • Developers with Java skills
    • Tool support: IDEs, debugger, JUnit, etc.
    • Eliminate browser-specific coding
    • Facilitate reuse
    • Fast, simple RPC
    SOURCE: Bruce Johnson
  • How it works Browser IE, Firefox, Safari, Opera Java Runtime Library java.lang java.util Java.io GWT GUI Library GWT Compiler SOURCE: Didier Girard Application code Panels Popup Stack Absolute Vertical … Widgets Button MenuBar Radio Tree Check Table TextArea … . Javascript Application GWT Runtime 100Ko
  • HelloWorld SOURCE: Didier Girard
  • Robust API SOURCE: Bruce Johnson
  • Widgets : 100% Java SOURCE: Didier Girard
  • History support SOURCE: Bruce Johnson
  • RPC Support SOURCE: Didier Girard
  • Cross browser, cross platform SOURCE: Didier Girard
  • CSS
    • GWT widgets are CSS compatible
    SOURCE: Didier Girard
  • Debugger SOURCE: Didier Girard
  • Javascript integration
    • JSNI is modelled on JNI
    • Many javascript library are already wrapped : Dojo, Extjs, Google Ajax API…
    public static native void alert(String msg) /*-{ $wnd.alert(msg); }-*/; SOURCE: Didier Girard
  • Compiler optimizations SOURCE: Bruce Johnson
  • Tools
    • GWT is supported by all the Java IDEs: Eclipse, NetBeans, IntelliJ IDEA, JDeveloper,…
  • Open Source
  • GWT : The Community
    • Millions of downloads
    • 11,000 subscribers to the forum
    • Books
    • Tons of tutorials
    • Blogs
    SOURCE: Didier Girard
  • How easy do you find GWT to use ? Google Confidential Source : http://www.ongwt.com/post/2008/02/21/How-easy-do-you-find-GWT-to-use SOURCE: Didier Girard
  • Resources GWT : http:// code.google.com/webtoolkit / Forum : http:// groups.google.com /group/Google-Web-Toolkit GWT Blog : http:// googlewebtoolkit.blogspot.com / onGWT, Tracking news on GWT : http:// www.ongwt.com /
  • Lessons Learned
  • Design your apps for the real world
    • Real-world users…
    • Have dial-up
    • Click things furiously when they don’t see the screen respond
    • Don’t find your app as “elegant” & “intuitive” as you do
    • They hit the back button
    • Multi-task
  • Think asynch
    • Handle exceptions!
    • Tell the user that something is going on
    • Load pages incrementally
    • Gracefully deal with stale sessions
  • Working with a designer
    • It’s ok to use more than one HTML page
    • Have the designer prepare HTML / CSS
    • Drop GWT elements on the page as required
  • Optimizing deployment
    • Use ant
    • Include only the files that are needed in production
    • Compress static content (Gzip – ant task) – 25% improvement
    • Tell browser to cache (far future headers) – 10X improvement
  • One GWT module per user “role” Manager.gwt.xml 171k Admin.gwt.xml 512k User.gwt.xml 323k
  • Use Model-View-Controller Controller Model
  • During development, compile for only one browser SOURCE: Didier Girard * *Hosted mode currently uses IE. Once GWT 1.5 ships, you should be able to stick to FF
  • Get Firebug
  • [Eclipse] project layout
    • Single Java project
    • Manually setup JEE Web folders
      • One folder for static content you want to cache
    • Separate folders for
      • Client
      • Server
      • Common / shared classes
  • Contact info
    • [email_address]
    • +