Академический Документы
Профессиональный Документы
Культура Документы
Google Web Toolkit (GWT ) is an open source set of tools that allows web developers to
create and maintain complex JavaScript front-end applications in Java. Other than a few native
libraries, 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.[2]
GWT emphasizes reusable approaches to common web development tasks, namely
asynchronous remote procedure calls, history management, bookmarking, UI abstraction,
internationalization, and cross-browser portability.
History
● GWT version 1.0 RC 1 was released on May 16, 2006.Google announced GWT at the
JavaOne conference, 2006
● In August 2010, Google acquired Instantiations,a company known for its focus 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 has reassured
the GWT community that GWT will 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 a number of
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
Using GWT, developers can 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. When needed, JavaScript can also be embedded
directly into Java code, using Java comments.
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. 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.
● Development mode (formerly H osted mode): The application is run as Java bytecode
within the Java Virtual Machine (JVM).[11] This mode is typically used for development,
supporting hot swapping of code and debugging.
● Production mode (formerly W eb mode): The application is run as pure JavaScript and
HTML, compiled from the Java source. This mode is typically used for deployment.
Components
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.
● Simple RPC(Remote Procedural Call) mechanism
● Browser history management
● Support for full-featured Java debugging
● GWT handles some cross-browser issues for the developer.
● Support for Internationalization and localization
● HTML Canvas support (subject to API changes)[20]
● 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). 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 easier to understand or obfuscated and smaller to download.
● A number of libraries are available for GWT, by Google and third parties. These extend
GWT's features.
Enterprise usage
GWT uses or supports Java, Apache Tomcat (or similar web container), Eclipse IDE,
Internet Explorer,and Internationalization and Localization. Java-based GWT RIAs 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 need of 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
GWT 2.0
On Dec 08, 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, hosted mode 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).
● Code splitting: with the developer providing "split points" in the source code, the GWT
compiler will be able to split the JavaScript code into several small chunks instead of one
big download. This will lead to reduced application startup time as the size of the initial
download is decreased.
● 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
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.
Mobile
As a general framework for making web apps, GWT is also capable of being used as a
framework for making 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.
Some of the most common mobile GWT libraries
● GwtMobile
● gwt-mobile-webkit
● jqm4gwt
● m-gwt
● gwtbootstrap3