Title: MIKE BURBA
1- MIKE BURBA
- FOUNDER
- Google Web Toolkit
- APRIL 17TH, 2008
2Acknowledgements
- 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.ht
ml - Didier Girard, CTO, SFEIR
- Introduction to the Google Web Toolkit
- http//www.slideshare.net/dgirard/introduction-to-
google-web-toolkit?srcembed
3DevHive is a SaaS platform for custom business
apps
- Platform-as-a-Service
- Business app building blocks
- Software marketplace
4Demonstration
5Why Ajax?
6At first, Ajax is really cool
SOURCE Didier Girard
7But, 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
8 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
9How it works
GWT GUI Library
Java Runtime Library
Application code
Panels Popup Stack Absolute Vertical
Widgets Button MenuBar Radio Tree Check
Table TextArea .
java.lang
java.util
Java.io
GWT Compiler
SOURCE Didier Girard
Browser IE, Firefox, Safari, Opera
Javascript Application
GWT Runtime 100Ko
10HelloWorld
SOURCE Didier Girard
11Robust API
SOURCE Bruce Johnson
12Widgets 100 Java
SOURCE Didier Girard
13History support
SOURCE Bruce Johnson
14RPC Support
SOURCE Didier Girard
15Cross browser, cross platform
SOURCE Didier Girard
16CSS
- GWT widgets are CSS compatible
SOURCE Didier Girard
17Debugger
SOURCE Didier Girard
18Javascript 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
19Compiler optimizations
SOURCE Bruce Johnson
20Tools
- GWT is supported by all the Java IDEs Eclipse,
NetBeans, IntelliJ IDEA, JDeveloper,
21Open Source
22GWT The Community
- Millions of downloads
- 11,000 subscribers to the forum
- Books
- Tons of tutorials
- Blogs
SOURCE Didier Girard
23How easy do you find GWT to use ?
SOURCE Didier Girard
Source http//www.ongwt.com/post/2008/02/21/How-
easy-do-you-find-GWT-to-use
Google Confidential
23
24Resources
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.co
m/
25Lessons Learned
26Design your apps for the real world
- Real-world users
- Have dial-up
- Click things furiously when they dont see the
screen respond - Dont find your app as elegant intuitive as
you do - They hit the back button
- Multi-task
27Think asynch
- Handle exceptions!
- Tell the user that something is going on
- Load pages incrementally
- Gracefully deal with stale sessions
28Working with adesigner
- Its ok to use more than one HTML page
- Have the designerprepare HTML / CSS
- Drop GWT elements onthe page as required
29Optimizing 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
30One GWT module peruser role
Manager.gwt.xml 171k
Admin.gwt.xml 512k
User.gwt.xml 323k
31Use Model-View-Controller
Controller
Model
32During development, compilefor only one browser
Hosted mode currently uses IE. Once GWT 1.5
ships, you should be able to stick to FF
SOURCE Didier Girard
33Get Firebug
34Eclipse 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
35Contact info
- mike.burba_at_devhive.com
- 1.248.207.5054