So much has been happening in the GWT community lately that I wanted to write a posting summarizing those developments and why they matter.
At Google I/O 2009, Ray Ryan held a talk titled ‘Best Practices For Architecting Your GWT App‘. In the talk, he layed down a design blueprint for real-world applications. One of the most important aspects he talked about was Model-View-Presenter (MVP). I have seen how developers have struggled organizing the code in their GWT project. Much of that struggle can be attributed to the fact that many of us Java developers don’t really have any component-based UI experience. Not many of us have worked with Swing, instead we’ve been spitting out JSP’s and writing Controllers. GWT requires a different approach and up until Ray’s talk, not much guidance existed around the subject.
After Ray’s talk, quite a few developers jumped at the opportunity to implement a framework that formalized MVP, the client-side EventBus and Dependency Injection using GIN. A couple of community projects appeared on Google Code:
Those projects highlighted that a real need existed within the community to have some frameworks that help developers organize their code, much like Spring-MVC does on the serverside. With the announcement of GWT 2.1 M1 it seems that the core GWT team at Google have acknowledged that need. It packs an MVP framework, so from GWT 2.1 onwards the GWT-MVP will be obsolete (but their pioneering was very important!). If you’re interested in MVP, also read the article on the official GWT documentation site.
The final development I’d like to mention is the integration between SpringSource’s great tool Spring Roo and GWT. I have been using Roo for quite a while and the new GWT support it adds is very exciting. Have a look at these screencasts (especially the second one, further down the page) and see how quickly you can get started with a GWT application. The code generated by Roo builds upon the MVP pattern. I for one will be monitoring the progress on GWT 2.1 and Spring Roo 1.1 closely!