Google Web Toolkit
This article contains content that is written like an advertisement. (October 2019)
|Initial release||May 16, 2006|
2.10.0 / June 9, 2022
|Operating system||Linux, Windows, OS X, FreeBSD|
|License||Apache License 2.0|
GWT emphasizes reusable approaches to everyday web development tasks, namely asynchronous remote procedure calls, history management, bookmarking, UI abstraction, internationalization, and cross-browser portability.
GWT version 1.0 RC 1 was released on May 16, 2006. Google announced GWT at the JavaOne conference in 2006.
|GWT 1.0||May 17, 2006|
|GWT 1.1||August 11, 2006|
|GWT 1.2||November 16, 2006|
|GWT 1.3||February 5, 2007|
|GWT 1.4||August 28, 2007|
|GWT 1.5||August 27, 2008|
|GWT 1.6||April 7, 2009|
|GWT 1.7||July 13, 2009|
|GWT 2.0||December 8, 2009|
|GWT 2.1.0||October 19, 2010|
|GWT 2.2.0||February 11, 2011|
|GWT 2.3.0||May 3, 2011|
|GWT 2.4.0||September 8, 2011|
|GWT 2.5.0||October 2012|
|GWT 2.5.1||March 2013|
|GWT 2.6.0||January 30, 2014|
|GWT 2.6.1||May 10, 2014|
|GWT 2.7.0||November 20, 2014|
|GWT 2.8.0||October 20, 2016|
|GWT 2.8.1||April 24, 2017|
|GWT 2.8.2||October 19, 2017|
|GWT 2.9.0||May 2, 2020|
|GWT 2.10.0||June 9, 2022|
In August 2010, Google acquired Instantiations, a company known for focusing on Eclipse Java developer tools, including GWT Designer, which is now bundled with Google Plugin for Eclipse.
In 2011 with the introduction of the Dart programming language, Google reassured the GWT community that GWT would continue to be supported for the foreseeable future but also hinted at a possible rapprochement between the two Google approaches to "structured web programming". They've also admitted, however, that several of the engineers previously working on GWT are now working on Dart.
In 2012 at their annual I/O conference, Google announced that GWT would be transformed from a Google project to a fully open-sourced project. In July 2013, Google posted on its GWT blog that the transformation to an open-source project was complete.
Development with GWT
GWT applications can be run in two modes:
- Development mode (formerly 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. In 2014, the classic implementation of Dev Mode was rendered unusable by browser updates until its replacement with the more compatible Super Dev Mode, which became the default in GWT 2.7.
Several open-source plugins are available for making GWT development easier with other IDEs, including GWT4NB for NetBeans, Cypal Studio for GWT (an Eclipse plugin), and GWT Developer for JDeveloper. The Google Plugin for Eclipse handles most GWT-related tasks in the IDE, including creating projects, invoking the GWT compiler, creating GWT launch configurations, validation, and syntax highlighting.
The major GWT components include:
- GWT Development Mode
- JRE emulation library
- GWT Web UI class library
- A set of custom interfaces and classes for creating widgets.
- 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.
- Simple RPC mechanism
- Browser history management
- Support for full-featured Java debugging
- GWT handles some cross-browser issues for the developer.
- Unit testing integration
- Support for Internationalization and localization
- HTML Canvas support (subject to API changes)
- Support for using Google APIs in GWT applications (initially, support for Google Gears).
- A number of libraries are available for GWT, by Google and third parties. These extend the toolkit's features.
As of version 2.4 (September 2011), Google Web Toolkit offers several widgets and panels.
Many common widgets not found in the GWT have been implemented in third-party libraries.
GWT uses or supports Java, Apache Tomcat (or similar web container), Eclipse IDE, Internet Explorer, and internationalization and localization. Java-based GWT rich web applications can be tested using JUnit testing framework and code coverage tools. Because GWT allows compile time verification of images, CSS, and business logic, many common development defects are automatically discovered without requiring the manual testing commonly required by RIAs.
Google has noted that some of its products are GWT-based: Blogger, AdWords, Flights, Wallet, Offers, Groups, Inbox.
On December 8, 2009, Google launched Google Web Toolkit 2.0 with Speed Tracer.
Version 2.0 of GWT offers a number of new features, including:
- In-Browser Development Mode (formerly known as Out Of Process Hosted Mode, OOPHM): prior to version 2.0, the hosted mode was used to embed a modified browser to allow running the bytecode version of the application during development. With version 2.0, hosted mode, renamed "development mode", allows using any (supported) browser to view the page being debugged through the use of a browser plugin. The plugin communicates with the development mode shell using TCP/IP, which allows cross-platform debugging (for example, debugging in Internet Explorer on Windows from a development mode shell running on a Linux machine).
- Declarative User Interface: using an XML format, the new feature known as UiBinder allows the creation of user interfaces through declaration rather than code. This allows a clean separation of UI construction and behavior implementation.
- Resource bundling: the ClientBundle interface will allow resources of any nature (images, CSS, text, binary) to be bundled together and transferred in one download, resulting in fewer round-trips to the server and hence lower application latency.
Since the new development mode removed most platform-specific code, the new version will be distributed as a unique archive, instead of one per supported platform, as was the case with previous versions.
As a general framework for making web apps, Google Web Toolkit is also capable of being used as a framework for creating mobile and tablet apps, either by making the needed widgets and animations from scratch or by using one of the mobile frameworks for GWT. An HTML5 app written in GWT can have separate views for Tablets and Mobile phones.
- Dart (programming language)
- Google Plugin for Eclipse
- Google Code
- Comparison of web frameworks
- ^ "GWT Name Use Policy". Retrieved April 23, 2014.
- ^ "Google Web Toolkit License Information". February 23, 2007. Retrieved September 25, 2007.
- ^ "Google Web Toolkit Release Archive". Retrieved September 25, 2007.
- ^ a b c Olson, Steven Douglas (2007). Ajax on Java. O'Reilly. p. 183. ISBN 978-0-596-10187-9.
- ^ Ramsdale, Chris. "Google Relaunches Instantiations Developer Tools".
- ^ "Google Web Toolkit Blog: GWT and Dart". Googlewebtoolkit.blogspot.com. November 10, 2011. Retrieved June 16, 2013.
- ^ Vaadin to Support Google Web Toolkit (GWT) Development. vaadin.com (June 29, 2012). Retrieved on 2014-05-15.
- ^ Google Web Toolkit Blog: GWT News. Googlewebtoolkit.blogspot.com (July 15, 2013). Retrieved on 2014-05-15.
- ^ GWT mission statement
- ^ Debugging in Development Mode
- ^ "Development Mode will not be supported in Firefox 27+". firstname.lastname@example.org (Mailing list).
- ^ "GWT Developer Plugin no longer works with Chrome on Linux". email@example.com (Mailing list).
- ^ "Super Dev Mode".
- ^ GWT4NB
- ^ Cypal Studio for GWT
- ^ "com.google.gwt.dev.Compiler". GitHub.
A base for classes that compile Java
JProgramrepresentations into corresponding Js source.
- ^ a b c d Perry, Bruce W (2007). Google Web Toolkit for Ajax. O'Reilly Short Cuts. O'Reilly. pp. 1–5. ISBN 978-0-596-51022-0.
- ^ "GWT Javadoc Canvas".
- ^ a b "Widget List". Google Inc. Retrieved May 21, 2012.
- ^ GWT Project. GWT Project. Retrieved on May 15, 2014.
- ^ "Google I/O 2012 - The History and Future of Google Web Toolkit". GoogleDevelopers. Retrieved March 18, 2013.
- ^ Toubassi, Garrick. "Going under the hood of Inbox". Official Gmail Blog. Retrieved November 22, 2014.
- ^ Introducing Google Web Toolkit 2.0, now with Speed Tracer
- ^ "GWT 2.0 milestone 1 announcement". Amit Manjhi. Retrieved October 5, 2009.
- Dewsbury, Ryan (December 15, 2007). Google Web Toolkit Applications. Prentice Hall. p. 608. ISBN 978-0-321-50196-7.
- Chaganti, Prabhakar (February 15, 2007). Google Web Toolkit: GWT Java Ajax Programming. Packt Publishing. p. 248. ISBN 978-1-84719-100-7.
- Geary, David (November 17, 2007). Google Web Toolkit Solutions: More Cool & Useful Stuff. Prentice Hall. p. 408. ISBN 978-0-13-234481-4.
- Hanson, Robert; Adam Tacy (February 7, 2013). GWT in Action (2nd ed.). Manning. p. 643. ISBN 978-1-935182-84-9.
- Cooper, Robert; Charlie Collins (May 12, 2008). GWT in Practice. Manning. p. 376. ISBN 978-1-933988-29-0.