Loading...
Flash Player 9 (or above) is needed to view slideshows. We have detected that you do not have it on your computer.To install it, go here
-
pseybold favorited this 2 weeks ago -
JuniorZ favorited this 3 weeks ago
-
normchow favorited this 3 months ago -
ndeloof favorited this 4 months ago -
JAN_LJ favorited this 5 months ago -
tantrieuf31 favorited this 7 months ago -
laszlo.gombos favorited this 7 months ago -
jnp favorited this 7 months ago -
wadefr favorited this 7 months ago -
chanezon favorited this 8 months ago
-
raistlinkong favorited this 8 months ago -
xueh007 favorited this 8 months ago -
catsy00 favorited this 8 months ago
-
monshi favorited this 8 months ago -
toutantic favorited this 8 months ago
Slideshow Transcript
- Slide 1: GWT-Gears The Browser is the Platform Didier Girard – girard.d@sfeir.com Sfeir CTO Member of OSSGTP
- Slide 2: Before starting, some questions • Who knows javascript ? • Who is a javascript expert ? • Who knows java ? 2 Google Confidential
- Slide 3: Content • Ajax : the good, the bad and the coward • Demonstrations • GWT for Chief (whatyouwant) Officer • GWT for developers • Gears for early adopters 3 Google Confidential
- Slide 4: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 5: Ajax : Asynchronous updates • Fresh data without reload
- Slide 6: Ajax : Rich Widgets • Widgets : One more beautiful than the other
- Slide 7: Ajax : Partial update of the screen • No more « Blank page » effect
- Slide 8: Single Page Interface : Better scalability • Stateless Server • Stateful client A p p lic a t io n D a ta B a s e G U I+B u s in e s s D a ta + S e s s io n
- Slide 9: At first, Ajax is really cool • So wonderful, incredible, marvellous • So efficient • Customers love it
- Slide 10: Some boring comments about javascript • … cross-browser • … memory leak • … loading latency • … « Javascript PhD » • … ajax IDE • … bugs (javascript is a dynamic language) • … cross browser javascript debugger • … security •…
- Slide 11: The solution – First step • Build the prototype of the application – It is really fun – Everybody will admire you
- Slide 12: The solution – Second step • Your customer purchases : leave the project :-)
- Slide 13: But I’m not a coward
- Slide 14: Do something else
- Slide 15: But What ?
- Slide 16: My manifest • I want a technology that – helps to code stable, efficient and cross-browser applications – Is a friend to me as a developer • Compatible with IDE, support debugging, refactoring, strong typing… • The base line could be : « Good for the user, good for the developer »
- Slide 17: That is what GWT is !
- Slide 18: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 19: Démonstrations
- Slide 20: Demonstrations • http://stuff.ongwt.com
- Slide 21: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 22: G WT is s im ple • Developing a web application with GWT is as simple as developing a Windows application with VB
- Slide 23: GWT is cheap 23 Google Confidential
- Slide 24: G WT c uts c os ts • Building a GWT application is 5 times faster than building a J2EE application
- Slide 25: G WT a pplic a tions a re e ffic ie nt • Local computation, bandwidth optimization
- Slide 26: G WT is offline c ompa tible • A GWT application doesn’t need a server
- Slide 27: Compatible with mobile 27 Google Confidential
- Slide 28: G WT is MDI c ompa tible * • GWT applications could have windows residing under a single parent window. *MDI : Multiple Document Interface
- Slide 29: G WT, b e tte r e rg onom ic a lly Web 1.0 GWT http://swissmiss.typepad.com/weblog/2007/11/task-clips.html
- Slide 30: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 31: The approach • Code in java • Compile the java to Javascript
- Slide 32: Hello World • Demonstration
- Slide 33: How easy do you find GWT to use ? Very Easy, Easy, Medium, Hard, Very Hard ? Source : http://www.ongwt.com/post/2008/02/21/How-easy-do-you-find-GWT-to-use 33 Google Confidential
- Slide 34: Architecture Panels Widgets java.lang Button MenuBar Application Popup Radio Tree java.util Stack Check Table code Absolute TextArea Java.io Vertical …. … Java Runtime Library GWT GUI Library RWA in Java GWT Compiler GWT Runtime Javascript 100Ko Application Browser IE, Firefox, Safari, Opera
- Slide 35: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 36: Widgets : « 100% java » • Demonstration (Kitchen Sink) http://code.google.com/webtoolkit/examples/kitchensink/
- Slide 37: Third party GWT Widgets • It is really easy to build its own widget • Many libraries – GWT Ext – MyGWT – GWT Rialto – Tatami – GWT Widget – GWTaculous – … 37 Google Confidential
- Slide 38: History support • « Single Page Interface » with history support ! • Demonstration (Kitchen Sink) • Code : History.addHistoryListener(myCommand);
- Slide 39: RPC Support (JSON/XML-RPC) • AJAX is a story of asynchronous request – With GWT, it is simple !
- Slide 40: I18N/L10N support • Simple and powerful
- Slide 41: GWT is compatible with unit testing • Compatible with Junit • Compatible with Selenium 41 Google Confidential
- Slide 42: Cross browser, cross platform
- Slide 43: CSS • GWT widgets are CSS compatible
- Slide 44: Debugger • Demonstration
- Slide 45: Javascript integration • JSNI, a clever API public static native void alert(String msg) /*-{ $wnd.alert(msg); }-*/; • Many javascript libraries are already wrapped : Dojo, Extjs,… • Demonstration
- Slide 46: Optimization • Compiled javascript is optimized • 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
- Slide 47: Good scalability • GWT server could be stateless • No more session affinity
- Slide 48: Tools • GWT is supported by all the java IDE : Eclipse, NetBeans, IntelliJ IDEA, JDeveloper,… • Advertisement : my favorite tool is GWT Designer
- Slide 49: GWT 1.4 is fast • Example : ImageBundle, kind of database for images – From 12 requests to 1 request… ClippedImage timeIcon = new ClippedImage(\"icons.png\", 22, 0, 22, 22); http://roberthanson.blogspot.com/2007/02/gwt-clippedimage-optimizing-image.html
- Slide 50: 2008 : GWT 1.5 • The Java 1.5 syntax is fully supported, including generics, enums, nice \"for\" loops, autoboxing, static imports, annotations, and so on • The ability to subclass JavaScriptObject for very straightforward JavaScript interop • Thurs, Mar 6 2008 : GWT 1.5 M1 is available for download 50 Google Confidential
- Slide 51: Google Gadget with GWT
- Slide 52: Gadget definition • <Module> <ModulePrefs title=\"Hello World” author=“Didier Girard” author_email=“Didier.Girard@gmail.com”> </ModulePrefs> <Content type=\"html\"> <![CDATA[ Your application goes here ]]> </Content> </Module>
- Slide 53: Gadget definition with GWT : 1 line • <Module> <ModulePrefs title=\"Hello World” author=“Didier Girard” author_email=“Didier.Girard@gmail.com”> </ModulePrefs> <Content type=\"html\"> <![CDATA[ <script src=\"http://..../com.mycompany.project.ImageViewer-xs.nocache.js\"> </script> ]]> </Content> </Module>
- Slide 54: Opensocial
- Slide 55: Who's Using It?
- Slide 56: Opensocial Definition with GWT : 2 lines • <Module> <ModulePrefs title=\"Hello World” author=“Didier Girard” author_email=“Didier.Girard@gmail.com”> <Require feature=\"opensocial-0.7\"/> </ModulePrefs> <Content type=\"html\"> <![CDATA[ <script src=\"http://..../com.mycompany.project.ImageViewer-xs.nocache.js\"> </script> ]]> </Content> </Module>
- Slide 57: Simple, Efficient and Powerful ?
- Slide 58: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 59: I need offline applications • Do you ever miss your application – Pubs – Trains • Are you sure that your user want its data in the cloud ?
- Slide 60: Classic web architecture HTTP Browser Server DataBase
- Slide 61: My needs in offline mode Browser Server Server DataBase DataBase
- Slide 62: I need Install Browser Server Server DataBase DataBase
- Slide 63: The solution • Google Gears – Browser Plugin (FireFox, Internet Explorer) – Features: • LocalServer (“programmable cache”) • Database • Worker Threads for JavaScript • http://gears.google.com
- Slide 64: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 65: Architecture Your GWT Your JS Application Application GWT Dojo Wrapper Javascript API Browser Gears 65 Google Confidential
- Slide 66: Demo • Live coding
- Slide 67: Perspectives of Gears : future APIs • Notification API • Crypto API • Factory API updates • Blob API • Logging API • Messaging API • Location API • Desktop Shortcut API • Image Manipulation API
- Slide 68: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 69: Think differently! • Rethink application ergonomic. • Forget browsing • MDI is possible • Stateless server, statefull client 69 Google Confidential
- Slide 70: Misc • DOM manipulation is costly – Your user can have : « slow script message » – -> Use « IncrementalCommand » (DEMO) • No need to send tones of asynchronous request • Deal with RPC error by subclassing AsyncCallback • Forget javascript • Use Selenium (DEMO) • Use Maven 70 Google Confidential
- Slide 71: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 72: You must used java on the server • No, GWT is server free
- Slide 73: Compiled javascript is impossible to debug • It is possible to change compilation option • But you never need to it, • -> Demo
- Slide 74: GWT applications are heavy • Compiled javascript is light and gzippable – KitchenSink is around 60Ko !
- Slide 75: GWT is HTML incompatible • Wrong – It is possible to include GWT components in a standard HTML page
- Slide 76: GWT applications are applets • Applets, no thanks :-) – Java is compiled to javascript !
- Slide 77: Content • Demonstrations • Why GWT ? • GWT features • Google Gears
- Slide 78: Who are the challengers • Silverlight • AIR/Flex • Firefox with the XUL/Prism stuff
- Slide 79: GWT and Gears 79 Google Confidential
- Slide 80: GWT : THE Community • Millions of downloads • 12000 subscribers to the users forum • 700 subscribers to the contributors forum • Books • Tons of articles • Tons of tutorials • Blogs
- Slide 81: Faster and faster • GWT application are efficient • It is 5 times faster to build a GWT application
- Slide 82: This might surprise you but • This pair of tools is the least disruptive – It is based on the most used langage : java – It doesn’t challenge the current web architecture which is mainly based on browsers
- Slide 83: P HP , S truts , J S F , AS P .NE T,… No Future
- Slide 84: Reminder « GWT + Gears » The browser is the platform ! I thank the GWT Team, I thank the community!
- Slide 85: SFEIR • 6 projects with GWT – 5000 days of coding – It is just fun – Clients are very happy with their applications – Our stack : GWT/Spring/Hibernate • Jobs: girard.d@sfeir.com 85 Google Confidential
- Slide 86: Ressources 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/ GWT and GEARS : http://www.ongwt.com/post/2008/01/28/Presentation-%3A-Gears-and-GWT

