Google Web Toolkit: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
SandBot (обсуждение | вклад) м →Ссылки: по итогу на КУ |
Alter73 (обсуждение | вклад) Изменена версия Метки: с мобильного устройства из мобильной версии через расширенный мобильный режим |
||
(не показано 18 промежуточных версий 12 участников) | |||
Строка 1: | Строка 1: | ||
{{карточка программы |
{{карточка программы |
||
| |
| name = Google Web Toolkit |
||
| |
| logo = GWT-logo.svg |
||
| |
| caption = |
||
| |
| screenshot = |
||
| |
| developer = [[Google (компания)|Google]] |
||
| |
| 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 = [[9 января]] [[2024]] |
||
| |
| programming_language = [[Java]] |
||
| |
| operating_system = [[Windows]], [[macOS]], [[Linux]] |
||
| |
| platform = [[Кроссплатформенное программное обеспечение|Кроссплатформенное ПО]] |
||
| |
| genre = [[Ajax framework]] |
||
| |
| license = [[Apache 2.0 License]] |
||
| |
| website = http://www.gwtproject.org/| |
||
| |
|||
}} |
}} |
||
'''Google Web Toolkit''' ('''GWT''', {{IPA|ˈɡwɪt|}}) — [[свободное ПО|свободный]] [[Java]]-[[фреймворк]], который позволяет веб-разработчикам создавать [[Ajax]]-приложения. Его особенность — |
'''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 |
Используя GWT, разработчики могут быстро писать и отлаживать AJAX-приложения на языке Java, используя инструментарий отладки Java. Компилятор GWT переведёт код Java-приложения соответствующему браузеру [[JavaScript]], [[HTML]] и [[CSS]]. |
||
Кроме того, GWT оснащен XML |
Кроме того, 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 |
* Поддержка полнофункциональной 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"/> |
||
=== Доступные виджеты === |
=== Доступные виджеты === |
||
Строка 129: | Строка 131: | ||
|} |
|} |
||
Многие обычные виджеты, отсутствующие в GWT, реализованы в сторонних библиотеках, таких как [ |
Многие обычные виджеты, отсутствующие в 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 |
: Позволяет запускать GWT-приложения в режиме отладки (ранее назывался «hosted»; приложения запускаются как Java код в JVM без компиляции в JavaScript). |
||
;Библиотека эмуляции JRE |
;Библиотека эмуляции JRE-классов (JRE emulation library) |
||
: Реализация часто используемых стандартных Java |
: Реализация часто используемых стандартных Java-классов на JavaScript'е. |
||
;Библиотека графических элементов (GWT Web UI class library) |
;Библиотека графических элементов (GWT Web UI class library) |
||
: Множество пользовательских интерфейсов и классов для создания [[виджет]]ов. |
: Множество пользовательских интерфейсов и классов для создания [[виджет]]ов. |
||
Строка 146: | Строка 148: | ||
== Мобильные приложения == |
== Мобильные приложения == |
||
Как общий фреймворк для создания веб-приложений, GWT также способен использоваться в качестве фреймворка для разработки мобильных и планшетных приложений |
Как общий фреймворк для создания веб-приложений, GWT также способен использоваться в качестве фреймворка для разработки мобильных и планшетных приложений либо сделав необходимые виджеты и анимации с нуля, либо с помощью одного из мобильных фреймворков для GWT. HTML5-приложение, написанное в GWT, может иметь отдельные views для планшетов и мобильных телефонов. |
||
Некоторые из наиболее распространенных мобильных библиотек GWT |
Некоторые из наиболее распространенных мобильных библиотек GWT |
||
Строка 178: | Строка 180: | ||
[[Категория:Программное обеспечение для macOS]] |
[[Категория:Программное обеспечение для macOS]] |
||
[[Категория:Программное обеспечение для Windows]] |
[[Категория:Программное обеспечение для Windows]] |
||
[[Категория:Программное обеспечение с лицензией Apache |
[[Категория:Программное обеспечение с лицензией Apache]] |
||
[[Категория:Программное обеспечение для Linux]] |
[[Категория:Программное обеспечение для Linux]] |
||
[[Категория:Свободное программное обеспечение, написанное на Java]] |
[[Категория:Свободное программное обеспечение, написанное на Java]] |
Текущая версия от 13:11, 10 мая 2024
Google Web Toolkit | |
---|---|
| |
Тип | Ajax framework |
Разработчик | |
Написана на | 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 1.0 — 17 мая 2006 года
- GWT 2.0 — 8 декабря 2009 года
- GWT 2.5 — 24 октября 2012 года
- GWT 2.6 — 23 января 2014 года
- GWT 2.6.1 — 10 мая 2014 года
- GWT 2.7 — 20 ноября 2014 года
- GWT 2.8 — 20 октября 2016 года
- GWT 2.8.1 — 24 апреля 2017 года
- GWT 2.8.2 — 19 октября 2017 года
- GWT 2.9.0 — 13 мая 2020 года
- GWT 2.10.0 — 9 июня 2022 года
Разработка с применением 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
Примечания
[править | править код]- ↑ GWT Project — Versions . Дата обращения: 10 мая 2024. Архивировано 10 мая 2024 года.
- ↑ https://code.google.com/webtoolkit/versions.html
- ↑ 1 2 Olson, Steven Douglas (2007). Ajax on Java. O’Reilly. p. 183. ISBN 978-0-596-10187-9.
- ↑ 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.
См. также
[править | править код]Ссылки
[править | править код]- Программное обеспечение по алфавиту
- Программное обеспечение, разработанное в 2006 году
- AJAX
- Свободное программное обеспечение Google
- Программное обеспечение для macOS
- Программное обеспечение для Windows
- Программное обеспечение с лицензией Apache
- Программное обеспечение для Linux
- Свободное программное обеспечение, написанное на Java
- Свободные библиотеки программ
- Фреймворки