Google Web Toolkit
(
GWT
,
ˈɡwɪt
) —
свободный
Java
-
фреймворк
, который позволяет веб-разработчикам создавать
Ajax
-приложения. Его особенность — компилятор Java -> JavaScript, позволяющий почти всю разработку
клиента
и
сервера
реализовать на основе
Java
и лишь на последнем этапе создать соответствующие
JavaScript
,
HTML
и
CSS
. Выпускается под
лицензией Apache
версии 2.0. GWT делает акцент на повторное использование и кросс‐браузерную совместимость.
История
Версия 1.0 RC 1 (build 1.0.20) выпущена
16 мая
2006 года
. Компания
Google
анонсировала GWT на конференции JavaOne в
2006 году
.
История версий:
Разработка с применением GWT
Используя GWT, разработчики могут быстро писать и отлаживать AJAX-приложения на языке Java, используя инструментарий отладки Java. Компилятор GWT переведёт код Java-приложения соответствующему браузеру
JavaScript
,
HTML
и
CSS
.
Кроме того, GWT оснащен XML-парсером, поддержкой интернационализации, интерфейсом для удаленного вызова процедур, интеграцией JUnit и небольшим пакетом виджетов для разработки элементов
графического интерфейса пользователя
(GUI). Они могут быть созданы аналогично тому, как это делается с помощью пакета Swing.
Отладка GWT-приложения разделена на две части: отладка серверной части приложения осуществляется как отладка обычного Java web-приложения, для отладки клиентской части понадобится gwt dev-plugin для браузера.
Утилита
командной строки webAppCreator, поставляемая вместе с GWT, автоматически создает все файлы, необходимые для нового GWT-проекта. Она также позволяет создавать файлы проекта
Eclipse
.
Существует подключаемый модуль
для IDE Eclipse (начиная с версии 3.3), позволяющий упростить процессы создания GWT-проекта и размещения готовых приложений на сервисе
Google App Engine
.
Особенности
-
Избегается повторная реализация одних и тех же графических интерфейсов для локальных и для веб-приложений с помощью различных технологий, например —
RCP
для первых и
JSF
— для вторых.
-
Обычная схема — «stateless клиент / stateful сервер» может быть заменена схемой «stateful клиент / stateless сервер». Это позволяет больше реакций пользователя обрабатывать непосредственно в клиенте.
-
Простой механизм
удалённого вызова процедур
. В сочетании с предыдущим качеством это позволяет серверу передавать в ответ данные, а не HTML. Сервер при этом может быть любой — не обязательно тот, который передал первую картинку.
-
Для передачи сложных данных может использоваться как стандартный
RPC
— передаче подлежат сериализируемые Java-объекты, так и тексты на
XML
или
JSON
.
-
Динамические и многоразовые
компоненты пользовательского интерфейса (виджеты)
: Программисты могут использовать заранее разработанные классы для реализации трудоемких элементов динамического поведения, таких, как
drag-and-drop
, или сложных визуальных структур.
-
Управление историей браузера
-
Поддержка полнофункциональной Java-отладки
-
GWT устраняет некоторые кросс-браузерные проблемы разработки.
-
JUnit
-интеграция
-
Поддержка
интернационализации и локализации
-
Поддержка
HTML Canvas
(с учётом изменений API)
-
Разработчики могут вставлять готовые JavaScript-фрагменты в исходный Java-текст, применяя JavaScript Native Interface (JSNI).
-
Поддержка использования Google
API
Gears
в приложениях GWT
-
Программное обеспечение с открытым исходным кодом
-
Разработчики могут проектировать и разрабатывать приложения в чистом объектно-ориентированном стиле, так как они используют Java (вместо JavaScript).
Обычные JavaScript-ошибки, такие, как опечатки и
несоответствие типов
, обрабатываются во время компиляции.
-
JavaScript, генерируемый GWT-компилятором, может быть разделен на фрагменты. Это не только дает возможность лучше понимать его, но и экономит время загрузки приложения — первый фрагмент может начать работать, не дожидаясь, пока весь JavaScript текст будет загружен
-
Ряд библиотек доступен для GWT от Google или третьих лиц. Это расширяет функциональные возможности GWT.
Доступные виджеты
Начиная с версии 2.4 (сентябрь 2011), GWT предлагает несколько
виджетов
Виджеты и панели
Виджеты
|
Панели
|
Button
|
PopupPanel
|
PushButton
|
StackPanel
|
RadioButton
|
StackLayoutPanel
|
CheckBox
|
HorizontalPanel
|
DatePicker
|
VerticalPanel
|
ToggleButton
|
FlowPanel
|
TextBox
|
VerticalSplitPanel
|
PasswordTextBox
|
HorizontalSplitPanel
|
TextArea
|
SplitLayoutPanel
|
Hyperlink
|
DockPanel
|
ListBox
|
DockLayoutPanel
|
CellList
|
TabPanel
|
MenuBar
|
TabLayoutPanel
|
Tree
|
DisclosurePanel
|
CellTree
|
SuggestBox
|
RichTextArea
|
FlexTable
|
Grid
|
CellTable
|
CellBrowser
|
TabBar
|
DialogBox
|
Многие обычные виджеты, отсутствующие в GWT, реализованы в сторонних библиотеках, таких как
,
,
,
,
,
,
,
и т. д.
Компоненты
Основные компоненты GWT:
-
Компилятор Java -> JavaScript (GWT Java-to-JavaScript Compiler)
-
Переводит Java код в JavaScript.
-
Отладчик (браузер, GWT Development Mode)
-
Позволяет запускать GWT-приложения в режиме отладки (ранее назывался «hosted»; приложения запускаются как Java код в JVM без компиляции в JavaScript).
-
Библиотека эмуляции JRE-классов (JRE emulation library)
-
Реализация часто используемых стандартных Java-классов на JavaScript'е.
-
Библиотека графических элементов (GWT Web UI class library)
-
Множество пользовательских интерфейсов и классов для создания
виджетов
.
-
Веб-сервер
-
Tomcat
или
Jetty
.
Мобильные приложения
Как общий фреймворк для создания веб-приложений, GWT также способен использоваться в качестве фреймворка для разработки мобильных и планшетных приложений либо сделав необходимые виджеты и анимации с нуля, либо с помощью одного из мобильных фреймворков для GWT. HTML5-приложение, написанное в GWT, может иметь отдельные views для планшетов и мобильных телефонов.
Некоторые из наиболее распространенных мобильных библиотек GWT
Примечания
-
(неопр.)
. Дата обращения: 27 марта 2014.
25 марта 2014 года.
-
-
↑
Olson, Steven Douglas (2007). Ajax on Java. O’Reilly. p. 183.
ISBN 978-0-596-10187-9
.
-
↑
Perry, Bruce W (2007). Google Web Toolkit for Ajax. O’Reilly Short Cuts. O’Reilly. pp. 1-5.
ISBN 978-0-596-51022-0
.
См. также
Ссылки
|
Низко-
уровневые
|
|
Высоко-
уровневые
|
Amiga OS
|
|
Mac OS
и
macOS
|
|
Windows
|
|
UNIX
, под
X
|
|
Кросс-
платфор-
менные
|
На основе Flash
|
|
На основе XML,
AJAX или SVG
|
|
На основе Java
|
|
На основе
C или C++
|
|
На основе Common Lisp
|
|
На основе Pascal
|
|
На основе Python
|
|
На основе Objective C
|
|
|
|
|
-
Председатель совета директоров
:
Эрик Шмидт
-
Директор, президент по технологиям и сооснователь
:
Сергей Брин
-
Главный исполнительный директор и сооснователь
:
Ларри Пейдж
Материнская компания
:
Alphabet
|
Реклама
|
|
Коммуникации
|
|
ПО
|
|
Платформы
|
|
Инструменты
разработки
|
|
Публикация
|
|
Поиск
(
PageRank
)
|
|
Тематические проекты
|
|
Закрытые проекты
|
|
См. также
|
|