Monday, June 08, 2009

Google Web Toolkit at Google I/O

Another Google I/O has come and gone, and speaking personally I think it's going to be hard to top this year's conference. Free Android unlocked developer devices and the unveiling of a very cool new product built with developers in mind? I already don't envy the planning team taking on next year.

There was a ton of Google Web Toolkit (GWT) related content this year, including an incredibly nice shout-out from Lars Rasmussen during the Google Wave keynote - if you haven't heard, Google Wave is built using GWT so if you want some inspiration as to what's possible, check out the keynote.

The GWT-related sessions have now been posted, so if you missed one you'll be able to catch it here. Here's a quick overview of the many sessions:

GWT Can Do What? A Preview of Google Web Toolkit 2.0: Start thinking about how you will take advantage of new features like runAsyc in the next version of Google Web Toolkit. Bruce Johnson, Co-creator of GWT, goes into the details of what's coming and the philosophy behind the new features.

Google Wave - Powered by GWT: This one's for the skeptics in your engineering department. As an adept JavaScript developer, Adam Schuck, Google Wave's Client Lead was initially skeptical about using Google Web Toolkit. Many lines of code later, he will openly tell you he's changed his mind about that. In this session, Adam discusses the Wave team's decision to use GWT and other facets of their client-side code.

Google Web Toolkit Architecture: Best Practices for Architecting your GWT App: A common question people ask is how to architect a GWT app. Ray Ryan discusses real-world learnings and patterns from the Google AdWords team and elsewhere which you can use in your apps.

Measure in Milliseconds: Performance Tips for Google Web Toolkit: Want some best practices for speeding up your app? Kelly Norton shares a few concrete issues and how to solve them.

Effective GWT: Developing a Complex, High- performance App with Google Web Toolkit: Alex Moffat and Damon Lundin from Lombardi are back again for a second year at Google I/O. Similar in theme to Ray Ryan's talk above, but with additional perspective and content, they'll take you through how they've successfully architected Lombardi Blueprint. I recommend watching both if you are laying out a new GWT app, or refactoring an existing one.

The Story of your Compile: Reading the Tea Leaves of the GWT Compiler for an Optimized Future: What if your app isn't as fast as you like it to be? While GWT tries to make your app as optimized as possible when you drive it off the lot, applications sometimes need to be tuned for racing by the developers themselves. Lex Spoon and Bruce Johnson talk about tools and techniques for understanding what's going on with your code and how to use that information to optimize your app.

Progressively Enhance AJAX Applications with Google Web Toolkit and GQuery: Ray Cromwell, from Timefire is one of my personal favorite speakers and commentators on GWT and web development. When he broke out his horse race demo in this session to measure performance deltas between different JS libraries, I knew why. Ray takes JQuery's power approach to manipulation and implements it in GWT. Learn about Ray's tool and how you can use this in your own projects to give designer's tools they can use directly in the HTML, without coding Java.

Building Applications with Google APIs: Did I mention Ray is an entertaining technical speaker? The title of this session, as Ray noted, doesn't do it justice. Related to GWT, this session outlines how he's used Google APIs and tools together to create an amazing integrated experience at Timefire. His demonstration of the interactive graph that syncs with the YouTube video is very compelling. Want to dispute Al Gore's claim of carbon emissions? Add your own dataset to the graph via a comment. Impressive.

We had a great time meeting many of you at I/O. Many of us were on hand, and talked to a lot of 'familiar email addresses' - it's nice to make that familiar faces. For those of you who didn't make it to I/O or want to revisit the GWT sessions, we hope you enjoy the session videos and presentations!

5 comments:

  1. is there a place where we can download the sources from the presentation on best practives architecturing GWT ?

    Thx !

    ReplyDelete
  2. I too would be very interested in seeing a example code on the best practices and using MVP rather than MVC.

    I hope that this resource is something Google can follow through with given the nature of the session, which was wonderful.

    ReplyDelete
  3. He discourages use of referencing child objects in a relationship because of eager loading. The example was a one-to-one. However, the app engine documents that "Child objects are loaded from the datastore when they are accessed for the first time." It says that joins are not supported so I get the impression that this never worked. It is not easy to prove one or the other, so it is worth clarification (before I too much code to go back and fix).

    See: http://code.google.com/appengine/docs/java/datastore/relationships.html

    ReplyDelete
  4. I created the sources from Google Web Toolkit Architecture video:

    Google I/O 2009 Best Practices for Architecting your GWT App

    http://code.google.com/p/gwtbestpractices

    ReplyDelete
  5. Take a look at the nice tutorial at
    http://blog.hivedevelopment.co.uk/2009/08/google-web-toolkit-gwt-mvp-example.html

    ReplyDelete