Google Web Toolkit
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
- Свободные библиотеки программ
- Фреймворки