TechHui

Hawaiʻi's Technology Community

Aloha TechHuians! If you have been hearing about
GWT lately, but don't have the time to get into it, maybe this post sheds some light on more notable features that GWT offers, so you can make an educated decision about picking the right web technology for your next project. Google Web Toolkit is a Google product that aims to ease the pain of developing Rich Internet Applications by allowing developers to code in Java programming language and compile that into cross-browser highly optimized JavaScript. If you already have experience with cross-browser development, especially for highly AJAXed interactions, you probably will appreciate what GWT has to offer. In a nutshell, here is a list of main features:
  • Write AJAX apps in Java, compile to highly optimized cross-browser JavaScript
  • Optimize JavaScript downloads based on client profile (Ex. Firefox in English, Opera in French, etc..)
  • Optimize image/css downloads with built-in Resource Bundle
  • Easily add Internationalization (I18N) support to your app
  • Use other JavaScript libraries and native JavaScript code (Ex. Prototype, JQuery, ExtJs, etc...)
  • Step through live AJAX code with a Java Debugger
  • View code changes immediately without re-compiling
  • Reuse UI components across projects
  • Test with JUnit
If you are wondering whether this technology is mature enough for serious development, take a look at existing projects that are being implemented in GWT: Google has been working on a series of new features that make GWT even more attractive. Here is a list of more notable ones: If you do decide to give it a try, there is plenty of material on the web to get started. Here is a list of some useful sites:
  • Google Web Toolkit Blog covers most notable new features.
  • GWT Forum hosted by Google Groups, with almost 20,000 members and 90,000 discussions, is a great place to get answers.
As for printed books, GWT in Action and
GWT in Practice probably cover most of GWT development grounds. Here is a link to original presentation slides used for TechHui conference GWT panel
GWT Presentation PDF Thank you for reading and Aloha!
Ikayzo - Design • Build • Localize | Web • Desktop • Mobile

Views: 898

Comment

You need to be a member of TechHui to add comments!

Join TechHui

Comment by Stephen McMahon on September 13, 2009 at 11:56am
I haven't any experience with either of the libraries that you mentioned, although I hear about Spring quite a lot. Pretty much the only Java development that I do at work these days is strictly within GWT and mostly as seasoning to some stone soup I'm brewing ;). I've played around a bit with GAE on my own time to try and learn more servlet and jsp stuff, but lately I've been pretty consumed by my job and haven't had a lot of that 'own time.' Having them mentioned here is more encouragement to learn more.
Comment by Konstantin A Lukin on September 13, 2009 at 9:21am
Ah, looking at the example, both GXT and SmartGWT have DataStore feature with Records that accept XML or JSON data from an url, so then it is possible to provide any server-side implementation for that. It is a handy feature in case one does not have access to a Java servlet container, otherwise servlet probably does a better job at this, since native GWT RPC mechanism allows transparent serialization of full object graphs, including lists and maps.

The problem with RPC is that methods get overcrowded pretty quickly, so it is important to have a good design upfront. Would be curious to hear about different server-side RPC implementations. Do you use any libraries to make things easier, like Spring or Guice?
Comment by Stephen McMahon on September 13, 2009 at 6:33am
I think that you may find most of what you are looking for at this link: http://www.smartclient.com/smartgwt/showcase/#restfulds_xml_integration_category. They have a full CRUD example with source code included there. There is also some very good information on that topic here: http://www.smartclient.com/smartgwt/javadoc/com/smartgwt/client/data/RestDataSource.html. Finally, there is the Record object that you can extend that should make things fit better into DataSources. I can't claim to have a wealth of experience in any of these items, but I expect that will all change within the next month :)
Comment by Konstantin A Lukin on September 13, 2009 at 12:28am
Great! Already having a number of questions, especially concerning RPC data serialization with ASP.NET and how that is handled by SmartGWT.. Could you provide a link where to find more information about this? Thanks.
Comment by Stephen McMahon on September 12, 2009 at 9:00pm
I think that the most challenging thing for me in using a non-Java solution on the server was setting up the GWT environment in Eclipse to point to and operate against my local IIS server. I've managed to configure it to point to IIS from the hosted mode browser, but I've lost my interactive debugging abilities. For this reason I'm really starting to get more interested in the unit testability of GWT apps. Any good blog pointers or examples that you or anybody reading might have in that area would really be appreciated.

I'll plan on posting the details of configuring an Eclipse hosted GWT project at IIS very soon.
Comment by Konstantin A Lukin on September 12, 2009 at 7:24pm
That sounds really slick! Just created a 'Google Web Toolkit' group to share developer ideas, would love to hear in more detail about alternative server-side supporting technologies and how they can be integrated with GWT. Thanks!
Comment by Stephen McMahon on September 12, 2009 at 5:57pm
It will take some more time before I convince them to let me implement gears but I've certainly kept it in mind as our largest application is a partially connected tool. Our only options for the server side are ASP.NET and ColdFusion. The reason that I went with SmartGWT is because of how easily I can manage the server side by either using ASP.NET MVC apps or WCF services -- depending on the complexity of the app. I've been following your GWT related posts and wondering how long it will be before we have a regularly scheduled GWT Users Group at the MIC :). I'd gladly contribute!
Comment by Konstantin A Lukin on September 12, 2009 at 4:10pm
Hi Stephen, frameworks you've mentioned are probably the major ones. There are also smaller projects, such as gwt-log, that nicely solves logging problem, especially when deploying to remote servers.

Like you mentioned, GWT apps behave a lot like desktop apps. Main difference with GWT is that conventional technologies refresh a web page on every navigation click. GWT simply makes an AJAX call to the server and modifies DOM accordingly. This could also be done using JavaScript and DHTML, however GWT introduces a strongly-typed/compiled approach using Java, which makes development and code management a lot easier. It also produces highly-optimized code, which considerably speeds up loading time. In the end, GWT app feels a lot closer to desktop behavior. By adding Google Gears API to this combo, a plugin which allows a web app to work offline, it becomes possible to create web apps that are speedier, consume less resources, and are capable of working 'unplugged'.

This technology is still pretty young compared to other more conventional ones, but is gaining popularity relatively quickly given the advantages that it offers.
Comment by Stephen McMahon on September 12, 2009 at 2:35pm
I first learned about GWT from Dan a while back and I've been pushing it in my company by starting small and demonstrating how we could improve the user experience in some of our web applications. I think that I may have convinced them to allow me to do a major re-write of an application by moving it from the desktop to the web. I originally started out using GXT, but I found out about SmartGWT (http://code.google.com/p/smartgwt/). Are there any other frameworks that you guys have found that you like to use or do you develop your own?
Comment by Daniel Leuck on September 12, 2009 at 11:30am
Great post Kostya! GWT is definitely a breath of fresh air in the world of web development. If any of you are already GWT gurus and would like to work with Kostya on interesting projects, please send your resume to dan@ikayzo.com.

Sponsors

web design, web development, localization

© 2024   Created by Daniel Leuck.   Powered by

Badges  |  Report an Issue  |  Terms of Service