Google Web Toolkit: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м →‎Ссылки: по итогу на КУ
Изменена версия
Метки: с мобильного устройства из мобильной версии через расширенный мобильный режим
 
(не показано 18 промежуточных версий 12 участников)
Строка 1: Строка 1:
{{карточка программы
{{карточка программы
| name = Google Web Toolkit
| name = Google Web Toolkit
| logo = [[Файл:GWT-logo.svg|250px]]
| logo = GWT-logo.svg
| caption =
| caption =
| screenshot =
| screenshot =
| developer = [[Google (компания)|Google]]
| developer = [[Google (компания)|Google]]
| latest_release_version = 2.8.1<ref>[http://www.gwtproject.org/versions.html GWT Project — Versions]</ref>
| latest_release_version = 2.11.0<ref>{{Cite web |url=https://www.gwtproject.org/versions.html |title=GWT Project — Versions |access-date=2024-05-10 |archive-date=2024-05-10 |archive-url=https://web.archive.org/web/20240510130922/https://www.gwtproject.org/versions.html |deadlink=no }}</ref>
| latest_release_date = [[24 апреля]] [[2017 год|2017]]
| latest_release_date = [[9 января]] [[2024]]
| programming_language = [[Java]]
| programming_language = [[Java]]
| operating_system = [[Windows NT]], [[Mac OS X]], [[Linux]]
| operating_system = [[Windows]], [[macOS]], [[Linux]]
| platform = [[Кроссплатформенное программное обеспечение|Кроссплатформенное ПО]]
| platform = [[Кроссплатформенное программное обеспечение|Кроссплатформенное ПО]]
| genre = [[Ajax framework]]
| genre = [[Ajax framework]]
| license = [[Apache 2.0 License]]
| license = [[Apache 2.0 License]]
| website = http://www.gwtproject.org/
| website = http://www.gwtproject.org/|
|
}}
}}
'''Google Web Toolkit''' ('''GWT''', {{IPA|ˈɡwɪt|}}) — [[свободное ПО|свободный]] [[Java]]-[[фреймворк]], который позволяет веб-разработчикам создавать [[Ajax]]-приложения. Его особенность — это компилятор Java -> JavaScript, позволяющий почти всю разработку клиента и сервера реализовать на основе [[Java]] и лишь на последнем этапе создать соответствующие [[JavaScript]], [[HTML]] и [[CSS]]. Выпускается под [[Apache Software License|лицензией Apache]] версии 2.0. GWT делает акцент на повторное использование и кросс‐браузерную совместимость.
'''Google Web Toolkit''' ('''GWT''', {{IPA|ˈɡwɪt|}}) — [[свободное ПО|свободный]] [[Java]]-[[фреймворк]], который позволяет веб-разработчикам создавать [[Ajax]]-приложения. Его особенность — компилятор Java -> JavaScript, позволяющий почти всю разработку [[Клиент — сервер|клиента]] и [[Сервер (программное обеспечение)|сервера]] реализовать на основе [[Java]] и лишь на последнем этапе создать соответствующие [[JavaScript]], [[HTML]] и [[CSS]]. Выпускается под [[Apache Software License|лицензией Apache]] версии 2.0. GWT делает акцент на повторное использование и кросс‐браузерную совместимость.


== История ==
== История ==
Строка 28: Строка 27:
* GWT 2.7 — [[10 мая|20 ноября]] [[2014 год]]а
* GWT 2.7 — [[10 мая|20 ноября]] [[2014 год]]а
* GWT 2.8 — [http://www.gwtproject.org/release-notes.html 20 октября 2016 года]
* GWT 2.8 — [http://www.gwtproject.org/release-notes.html 20 октября 2016 года]
*GWT 2.8.1 — [http://www.gwtproject.org/release-notes.html#Release_Notes_2_8_1 24 апреля 2017 года]
* GWT 2.8.1 — [http://www.gwtproject.org/release-notes.html#Release_Notes_2_8_1 24 апреля 2017 года]
* GWT 2.8.2 — [http://www.gwtproject.org/release-notes.html#Release_Notes_2_8_2 19 октября 2017 года]
* GWT 2.9.0 — [http://www.gwtproject.org/release-notes.html#Release_Notes_2_9_0 13 мая 2020 года]
* GWT 2.10.0 — [https://www.gwtproject.org/release-notes.html#Release_Notes_2_10_0 9 июня 2022 года]


== Разработка с применением GWT ==
== Разработка с применением GWT ==
Используя GWT, разработчики могут быстро писать и отлаживать AJAX приложения на языке Java, используя инструментарий отладки Java. Компилятор GWT переведёт код Java приложения соответствующему браузеру [[JavaScript]], [[HTML]] и [[CSS]].
Используя GWT, разработчики могут быстро писать и отлаживать AJAX-приложения на языке Java, используя инструментарий отладки Java. Компилятор GWT переведёт код Java-приложения соответствующему браузеру [[JavaScript]], [[HTML]] и [[CSS]].


Кроме того, GWT оснащен XML парсером, поддержкой интернационализации, интерфейсом для удаленного вызова процедур, интеграцией JUnit и небольшим пакетом виджетов для разработки элементов графического интерфейса пользователя (GUI). Они могут быть созданы аналогично тому, как это делается с помощью пакета Swing.
Кроме того, GWT оснащен XML-парсером, поддержкой интернационализации, интерфейсом для удаленного вызова процедур, интеграцией JUnit и небольшим пакетом виджетов для разработки элементов [[Графический интерфейс пользователя|графического интерфейса пользователя]] (GUI). Они могут быть созданы аналогично тому, как это делается с помощью пакета Swing.


Отладка GWT-приложения разделена на две части: отладка серверной части приложения осуществляется как отладка обычного Java web-приложения, для отладки клиентской части понадобится gwt dev-plugin для браузера.
Отладка GWT-приложения разделена на две части: отладка серверной части приложения осуществляется как отладка обычного Java web-приложения, для отладки клиентской части понадобится gwt dev-plugin для браузера.


Утилита командной строки webAppCreator, поставляемая вместе с GWT, автоматически создает все файлы, необходимые для нового GWT-проекта. Она также позволяет создавать файлы проекта [[Eclipse (среда разработки)|Eclipse]].
[[Утилита]] командной строки webAppCreator, поставляемая вместе с GWT, автоматически создает все файлы, необходимые для нового GWT-проекта. Она также позволяет создавать файлы проекта [[Eclipse (среда разработки)|Eclipse]].


Существует подключаемый модуль [http://code.google.com/eclipse/ Google Plugin] для IDE Eclipse (начиная с версии 3.3), позволяющий упростить процессы создания GWT-проекта и размещения готовых приложений на сервисе [[Google App Engine]].
Существует подключаемый модуль [http://code.google.com/eclipse/ Google Plugin] для IDE Eclipse (начиная с версии 3.3), позволяющий упростить процессы создания GWT-проекта и размещения готовых приложений на сервисе [[Google App Engine]].
Строка 46: Строка 48:
* Простой механизм [[Удалённый вызов процедур|удалённого вызова процедур]]. В сочетании с предыдущим качеством это позволяет серверу передавать в ответ данные, а не HTML. Сервер при этом может быть любой — не обязательно тот, который передал первую картинку.
* Простой механизм [[Удалённый вызов процедур|удалённого вызова процедур]]. В сочетании с предыдущим качеством это позволяет серверу передавать в ответ данные, а не HTML. Сервер при этом может быть любой — не обязательно тот, который передал первую картинку.
* Для передачи сложных данных может использоваться как стандартный [[Удалённый вызов процедур|RPC]] — передаче подлежат сериализируемые Java-объекты, так и тексты на [[XML]] или [[JSON]].
* Для передачи сложных данных может использоваться как стандартный [[Удалённый вызов процедур|RPC]] — передаче подлежат сериализируемые Java-объекты, так и тексты на [[XML]] или [[JSON]].
* Динамические и многоразовые [[виджет|компоненты пользовательского интерфейса (виджеты)]]: Программисты могут использовать заранее разработанные классы для реализации трудоемких элементов динамического поведения, таких, как drag-and-drop, или сложных визуальных структур.
* Динамические и многоразовые [[виджет|компоненты пользовательского интерфейса (виджеты)]]: Программисты могут использовать заранее разработанные классы для реализации трудоемких элементов динамического поведения, таких, как [[drag-and-drop]], или сложных визуальных структур.
* Управление историей браузера
* Управление историей браузера
* Поддержка полнофункциональной Java отладки<ref name="Steven_Olson_Ajax_Java">Olson, Steven Douglas (2007). Ajax on Java. O’Reilly. p. 183. ISBN 978-0-596-10187-9.</ref>
* Поддержка полнофункциональной Java-отладки<ref name="Steven_Olson_Ajax_Java">Olson, Steven Douglas (2007). Ajax on Java. O’Reilly. p. 183. ISBN 978-0-596-10187-9.</ref>
* GWT устраняет некоторые кросс-браузерные проблемы разработки.<ref name="Steven_Olson_Ajax_Java"/>
* GWT устраняет некоторые кросс-браузерные проблемы разработки.<ref name="Steven_Olson_Ajax_Java"/>
* [[JUnit]]-интеграция
* [[JUnit]]-интеграция
Строка 57: Строка 59:
* Программное обеспечение с открытым исходным кодом
* Программное обеспечение с открытым исходным кодом
* Разработчики могут проектировать и разрабатывать приложения в чистом объектно-ориентированном стиле, так как они используют Java (вместо JavaScript).<ref name="Bruce_Perry_GWT_Ajax">Perry, Bruce W (2007). Google Web Toolkit for Ajax. O’Reilly Short Cuts. O’Reilly. pp. 1-5. ISBN 978-0-596-51022-0.</ref> Обычные JavaScript-ошибки, такие, как опечатки и [[Система типов|несоответствие типов]], обрабатываются во время компиляции.
* Разработчики могут проектировать и разрабатывать приложения в чистом объектно-ориентированном стиле, так как они используют Java (вместо JavaScript).<ref name="Bruce_Perry_GWT_Ajax">Perry, Bruce W (2007). Google Web Toolkit for Ajax. O’Reilly Short Cuts. O’Reilly. pp. 1-5. ISBN 978-0-596-51022-0.</ref> Обычные JavaScript-ошибки, такие, как опечатки и [[Система типов|несоответствие типов]], обрабатываются во время компиляции.
* JavaScript, генерируемый GWT-компилятором, может быть разделен на фрагменты. Это не только дает возможность лучше понимать его, но и экономит время загрузки приложения — первый фрагмент может начать работать, не дожидаясь пока весь JavaScript текст будет загружен<ref name="Bruce_Perry_GWT_Ajax"/>
* JavaScript, генерируемый GWT-компилятором, может быть разделен на фрагменты. Это не только дает возможность лучше понимать его, но и экономит время загрузки приложения — первый фрагмент может начать работать, не дожидаясь, пока весь JavaScript текст будет загружен<ref name="Bruce_Perry_GWT_Ajax"/>
* Ряд библиотек доступны для GWT, от Google или третьих лиц. Это расширяет функциональные возможности GWT.<ref name="Bruce_Perry_GWT_Ajax"/>
* Ряд библиотек доступен для GWT от Google или третьих лиц. Это расширяет функциональные возможности GWT.<ref name="Bruce_Perry_GWT_Ajax"/>


=== Доступные виджеты ===
=== Доступные виджеты ===
Строка 129: Строка 131:
|}
|}


Многие обычные виджеты, отсутствующие в GWT, реализованы в сторонних библиотеках, таких как [http://extjs.com/products/gxt/ Ext GWT], [http://gwt.components.googlepages.com/ GWT Component Library], [http://code.google.com/p/gwt-ext/ GWT-Ext], [http://gwt-widget.sourceforge.net/ GWT Widget Library], [http://gwtiger.org/ GWTiger], [http://code.google.com/p/rocket-gwt/ Rocket GWT], [http://code.google.com/p/tatami/ Dojo], [http://code.google.com/p/smartgwt/ SmartGWT] и т. д.
Многие обычные виджеты, отсутствующие в GWT, реализованы в сторонних библиотеках, таких как [https://www.sencha.com/products/gxt/ Sencha GXT], [http://gwt.components.googlepages.com/ GWT Component Library], [http://code.google.com/p/gwt-ext/ GWT-Ext], [http://gwt-widget.sourceforge.net/ GWT Widget Library], [https://web.archive.org/web/20100213001907/http://gwtiger.org/ GWTiger], [http://code.google.com/p/rocket-gwt/ Rocket GWT], [http://code.google.com/p/tatami/ Dojo], [http://code.google.com/p/smartgwt/ SmartGWT] и т. д.


== Компоненты ==
== Компоненты ==
Основные компоненты GWT:
Основные компоненты GWT:


;Компилятор Java->JavaScript (GWT Java-to-JavaScript Compiler)
;Компилятор Java -> JavaScript (GWT Java-to-JavaScript Compiler)
: Переводит Java код в JavaScript.
: Переводит Java код в JavaScript.
;Отладчик (браузер, GWT Development Mode)
;Отладчик (браузер, GWT Development Mode)
: Позволяет запускать GWT приложения в режиме отладки (ранее назывался «hosted»; приложения запускаются как Java код в JVM без компиляции в JavaScript).
: Позволяет запускать GWT-приложения в режиме отладки (ранее назывался «hosted»; приложения запускаются как Java код в JVM без компиляции в JavaScript).
;Библиотека эмуляции JRE классов (JRE emulation library)
;Библиотека эмуляции JRE-классов (JRE emulation library)
: Реализация часто используемых стандартных Java классов на JavaScript.
: Реализация часто используемых стандартных Java-классов на JavaScript.
;Библиотека графических элементов (GWT Web UI class library)
;Библиотека графических элементов (GWT Web UI class library)
: Множество пользовательских интерфейсов и классов для создания [[виджет]]ов.
: Множество пользовательских интерфейсов и классов для создания [[виджет]]ов.
Строка 146: Строка 148:


== Мобильные приложения ==
== Мобильные приложения ==
Как общий фреймворк для создания веб-приложений, GWT также способен использоваться в качестве фреймворка для разработки мобильных и планшетных приложений, либо, сделав необходимые виджеты и анимации с нуля, либо с помощью одного из мобильных фреймворков для GWT. HTML5-приложение, написанное в GWT, может иметь отдельные views для планшетов и мобильных телефонов.
Как общий фреймворк для создания веб-приложений, GWT также способен использоваться в качестве фреймворка для разработки мобильных и планшетных приложений либо сделав необходимые виджеты и анимации с нуля, либо с помощью одного из мобильных фреймворков для GWT. HTML5-приложение, написанное в GWT, может иметь отдельные views для планшетов и мобильных телефонов.


Некоторые из наиболее распространенных мобильных библиотек GWT
Некоторые из наиболее распространенных мобильных библиотек GWT
Строка 178: Строка 180:
[[Категория:Программное обеспечение для macOS]]
[[Категория:Программное обеспечение для macOS]]
[[Категория:Программное обеспечение для Windows]]
[[Категория:Программное обеспечение для Windows]]
[[Категория:Программное обеспечение с лицензией Apache Software License]]
[[Категория:Программное обеспечение с лицензией Apache]]
[[Категория:Программное обеспечение для Linux]]
[[Категория:Программное обеспечение для Linux]]
[[Категория:Свободное программное обеспечение, написанное на Java]]
[[Категория:Свободное программное обеспечение, написанное на Java]]

Текущая версия от 13:11, 10 мая 2024

Google Web Toolkit
Логотип программы Google Web Toolkit
Тип Ajax framework
Разработчик Google
Написана на Java
Операционные системы Windows, macOS, Linux
Первый выпуск 16 мая 2006[2]
Аппаратная платформа Кроссплатформенное ПО
Последняя версия 2.11.0[1] (9 января 2024)
Репозиторий github.com/gwtproject/gwt
Лицензия Apache 2.0 License
Сайт gwtproject.org
Логотип Викисклада Медиафайлы на Викискладе

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.

Существует подключаемый модуль Google Plugin для IDE Eclipse (начиная с версии 3.3), позволяющий упростить процессы создания GWT-проекта и размещения готовых приложений на сервисе Google App Engine.

Особенности

[править | править код]
  • Избегается повторная реализация одних и тех же графических интерфейсов для локальных и для веб-приложений с помощью различных технологий, например — RCP для первых и JSF — для вторых.
  • Обычная схема — «stateless клиент / stateful сервер» может быть заменена схемой «stateful клиент / stateless сервер». Это позволяет больше реакций пользователя обрабатывать непосредственно в клиенте.
  • Простой механизм удалённого вызова процедур. В сочетании с предыдущим качеством это позволяет серверу передавать в ответ данные, а не HTML. Сервер при этом может быть любой — не обязательно тот, который передал первую картинку.
  • Для передачи сложных данных может использоваться как стандартный RPC — передаче подлежат сериализируемые Java-объекты, так и тексты на XML или JSON.
  • Динамические и многоразовые компоненты пользовательского интерфейса (виджеты): Программисты могут использовать заранее разработанные классы для реализации трудоемких элементов динамического поведения, таких, как drag-and-drop, или сложных визуальных структур.
  • Управление историей браузера
  • Поддержка полнофункциональной Java-отладки[3]
  • GWT устраняет некоторые кросс-браузерные проблемы разработки.[3]
  • JUnit-интеграция
  • Поддержка интернационализации и локализации
  • Поддержка HTML Canvas (с учётом изменений API)
  • Разработчики могут вставлять готовые JavaScript-фрагменты в исходный Java-текст, применяя JavaScript Native Interface (JSNI).
  • Поддержка использования Google API Gears в приложениях GWT
  • Программное обеспечение с открытым исходным кодом
  • Разработчики могут проектировать и разрабатывать приложения в чистом объектно-ориентированном стиле, так как они используют Java (вместо JavaScript).[4] Обычные JavaScript-ошибки, такие, как опечатки и несоответствие типов, обрабатываются во время компиляции.
  • JavaScript, генерируемый GWT-компилятором, может быть разделен на фрагменты. Это не только дает возможность лучше понимать его, но и экономит время загрузки приложения — первый фрагмент может начать работать, не дожидаясь, пока весь JavaScript текст будет загружен[4]
  • Ряд библиотек доступен для GWT от Google или третьих лиц. Это расширяет функциональные возможности GWT.[4]

Доступные виджеты

[править | править код]

Начиная с версии 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, реализованы в сторонних библиотеках, таких как Sencha GXT, GWT Component Library, GWT-Ext, GWT Widget Library, GWTiger, Rocket GWT, Dojo, SmartGWT и т. д.

Компоненты

[править | править код]

Основные компоненты 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

Примечания

[править | править код]
  1. GWT Project — Versions. Дата обращения: 10 мая 2024. Архивировано 10 мая 2024 года.
  2. https://code.google.com/webtoolkit/versions.html
  3. 1 2 Olson, Steven Douglas (2007). Ajax on Java. O’Reilly. p. 183. ISBN 978-0-596-10187-9.
  4. 1 2 3 Perry, Bruce W (2007). Google Web Toolkit for Ajax. O’Reilly Short Cuts. O’Reilly. pp. 1-5. ISBN 978-0-596-51022-0.