Jump to content

Google Web Toolkit: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Added reference to the Google Web Toolkit incubator that contains additional widgets.
Added external reference to the Google Web Toolkit incubator.
Line 197: Line 197:
* [http://googlewebtoolkit.blogspot.com/ Official GWT blog]
* [http://googlewebtoolkit.blogspot.com/ Official GWT blog]
* [http://groups.google.com/group/Google-Web-Toolkit Official GWT forums]
* [http://groups.google.com/group/Google-Web-Toolkit Official GWT forums]
* [http://code.google.com/p/google-web-toolkit-incubator/Google Web Toolkit Incubator]
* [http://www.VoicesThatMatter.com/GWT2007 Conference on GWT organized by Addison-Wesley, Prentice Hall and Pearson Education]
* [http://www.VoicesThatMatter.com/GWT2007 Conference on GWT organized by Addison-Wesley, Prentice Hall and Pearson Education]



{{Application frameworks}}
{{Application frameworks}}

Revision as of 02:32, 29 April 2009

Google Web Toolkit
Original author(s)Google
Initial releaseMay 16, 2006
Stable release
1.6.4 / April 17, 2009 (2009-04-17)
Repository
Written inJava
Operating systemWindows, Mac OS X, Linux
Available inJava
TypeAjax framework
LicenseApache License 2.0
Websitehttp://code.google.com/webtoolkit

Google Web Toolkit (GWT) is an open source Java software development framework that allows web developers to create and maintain complex JavaScript front-end applications in Java. Other than a few native libs, everything is Java source that can be built on any supported platform with the included GWT Ant build files. It is licensed under the Apache License version 2.0.[1]

GWT emphasizes reusable, efficient solutions to recurring Ajax challenges, namely asynchronous remote procedure calls, history management, bookmarking, and cross-browser portability.

History

GWT version 1.0 RC 1 (build 1.0.20) was released on May 16, 2006.[2] Google announced GWT at the JavaOne conference, 2006.[3]

Release history:

Development

Using GWT, developers can rapidly develop and debug AJAX applications in the Java language using the Java development tools of their choice. When the application is deployed, the GWT cross-compiler translates the Java application to standalone JavaScript files that are optionally obfuscated and deeply optimized.

GWT does not revolve only around user interface programming; it is a general set of tools for building any sort of high-performance client-side JavaScript functionality. In live presentations, the developers of GWT emphasize that "GWT is not its libraries" and that it only includes a library but is not fundamentally yet another AJAX library. This open-ended philosophy sometimes surprises developers new to GWT who expect it to provide an end-to-end "on rails" application framework. Indeed, many key architectural decisions are left completely to the developer. The GWT mission statement clarifies the philosophical breakdown of GWT's role versus the developer's role. History is an example of such: although GWT manages history tokens as users click Back or Forward in the browser, it does not prescribe how to map history tokens to an application state.

GWT applications can be run in two modes:

  • Hosted mode: The application is run as Java bytecode within the Java Virtual Machine (JVM). This mode is typically used for development, supporting hot swapping of code and debugging.
  • Web mode: The application is run as pure JavaScript and HTML, compiled from the Java source. This mode is typically used for deployment.

A command-line utility shipped with GWT, applicationCreator, automatically generates all the files needed to start a GWT project. It can also generate Eclipse project files. Several open-source plugins are available for making GWT development easier with other IDEs. E.g., GWT4NB for NetBeans, Cypal Studio for GWT for Eclipse, gwtDeveloper for JDeveloper etc.

Components

The major GWT components include:

GWT Java-to-JavaScript Compiler
Translates the Java programming language to the JavaScript programming language.
GWT Hosted Web Browser
Allows the developers to run and execute GWT applications in hosted mode (the app runs as Java in the JVM without compiling to JavaScript).
JRE emulation library
JavaScript implementations of the commonly used classes in the Java standard class library (such as most of the java.lang package classes and a subset of the java.util package classes).
GWT Web UI class library
A set of custom interfaces and classes for creating widgets.

Features

  • Dynamic and reusable UI components: programmers can use pre-designed classes to implement otherwise time-consuming dynamic behaviors, such as drag-and-drop or sophisticated visual tree structures.[4]
  • Simple RPC mechanism
  • Browser history management
  • Support for full-featured Java debugging[3]
  • GWT handles all cross-browser issues for the developer.[3]
  • JUnit integration
  • Easy internationalization
  • The developers can mix handwritten JavaScript in the Java source code using the JavaScript Native Interface (JSNI).
  • Support for using Google APIs in GWT applications (initially, support for Google Gears)
  • Open-source
  • The developers can design and develop their application in a pure object-oriented fashion, since they're using Java (instead of JavaScript).[4] Common JavaScript errors, such as typos and type mismatches, are caught at compile time.
  • The JavaScript that the GWT compiler generates can be tailored to be either unobfuscated and easy to understand or obfuscated and smaller to download.[4]
  • A number of libraries are available for GWT, by Google and third parties. These extend GWTs features.[4]

Available widgets

As of version 1.4 (August 2007), GWT offers several widgets:[5]

  • HTML primitives (Button, Radio Button, Checkbox, TextBox, PasswordTextBox, TextArea, Hyperlink, ListBox, Table etc.)
  • PushButton, ToggleButton
  • MenuBar
  • Tree
  • TabBar
  • DialogBox
  • Panels (PopupPanel, StackPanel, HorizontalPanel, VerticalPanel, FlowPanel, VerticalSplitPanel, HorizontalSplitPanel, DockPanel, TabPanel, DisclosurePanel)
  • RichTextArea
  • SuggestBox (auto-complete)

Widgets undergoing development (and likely to be released in future versions of GWT) can be found in the Google Web Toolkit Incubator.

Many common widgets not found in the GWT have been implemented in third-party libraries, such as Ext GWT, GWT Component Library, GWT-Ext, GWT Widget Library, GWTiger, Rocket GWT, Dojo, SmartGWT etc.

Additional frameworks (third-party)

See also

References

  1. ^ "Google Web Toolkit License Information". Google. February 23, 2007. Retrieved 2007-09-25. {{cite web}}: Check date values in: |date= (help)
  2. ^ "Google Web Toolkit Release Archive". Google. Retrieved 2007-09-25.
  3. ^ a b c Olson, Steven Douglas (2007). Ajax on Java. O'Reilly. p. 183. ISBN 978-0596101879.
  4. ^ a b c d Perry, Bruce W (2007). Google Web Toolkit for Ajax. O'Reilly Short Cuts. O'Reilly. pp. 1–5. ISBN 978-0596510220.
  5. ^ "Widgets Gallery". Google. Retrieved 2007-09-25.

Bibliography