Веб-инструментарий Google
![]() | Эта статья содержит контент, написанный как реклама . ( Октябрь 2019 г. ) |
![]() | |
Оригинальный автор(ы) | |
---|---|
Начальная версия | 16 мая 2006 г |
Стабильная версия | 2.11.0
/ 9 января 2024 г |
Репозиторий | |
Написано в | Джава |
Операционная система | Linux , Windows , MacOS , FreeBSD |
Доступно в | Джава |
Тип | Ajax-фреймворк |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | www |
Google Web Toolkit ( GWT / ˈ ɡ w ɪ t / ) или GWT Web Toolkit , [1] — это с открытым исходным кодом набор инструментов , который позволяет веб-разработчикам создавать и поддерживать приложения JavaScript интерфейсные на Java . Он распространяется по лицензии Apache License 2.0 . [2]
GWT поддерживает различные задачи веб-разработки, такие как асинхронные удаленные вызовы процедур , управление историей, создание закладок , пользовательского интерфейса абстракция , интернационализация и кросс-браузерная переносимость .
История [ править ]
GWT версии 1.0 RC 1 был выпущен 16 мая 2006 года. [3] Google анонсировал GWT на конференции JavaOne в 2006 году. [4]
Выпускать | Дата |
---|---|
ГВТ 1.0 | 17 мая 2006 г. |
УВТ 1.1 | 11 августа 2006 г. |
УВТ 1.2 | 16 ноября 2006 г. |
УВТ 1.3 | 5 февраля 2007 г. |
УВТ 1.4 | 28 августа 2007 г. |
УВТ 1,5 | 27 августа 2008 г. |
УВТ 1,6 | 7 апреля 2009 г. |
УВТ 1,7 | 13 июля 2009 г. |
ГВТ 2.0 | 8 декабря 2009 г. |
ГВТ 2.1.0 | 19 октября 2010 г. |
ГВТ 2.2.0 | 11 февраля 2011 г. |
ГВТ 2.3.0 | 3 мая 2011 г. |
ГВТ 2.4.0 | 8 сентября 2011 г. |
ГВТ 2.5.0 | Октябрь 2012 г. |
ГВТ 2.5.1 | Март 2013 г. |
ГВТ 2.6.0 | 30 января 2014 г. |
ГВТ 2.6.1 | 10 мая 2014 г. |
ГВТ 2.7.0 | 20 ноября 2014 г. |
ГВТ 2.8.0 | 20 октября 2016 г. |
ГВТ 2.8.1 | 24 апреля 2017 г. |
ГВТ 2.8.2 | 19 октября 2017 г. |
ГВТ 2.9.0 | 2 мая 2020 г. |
ГВТ 2.10.0 | 9 июня 2022 г. |
ГВТ 2.11.0 | 9 января 2024 г. |
В августе 2010 года Google приобрела Instantiations, [5] компания, известная тем, что специализируется на инструментах разработчика Eclipse Java, включая GWT Designer, который теперь входит в состав плагина Google для Eclipse .
В 2011 году, с появлением языка программирования Dart , Google заявила, что GWT будет продолжать поддерживаться в обозримом будущем, а также намекнула на возможное сближение между двумя подходами Google к структурированному веб-программированию. Однако они также упомянули, что несколько инженеров, ранее работавших над GWT, теперь работают над Dart . [6]
В 2012 году на своей ежегодной конференции I/O компания Google объявила, что GWT будет преобразован из проекта Google в проект с полностью открытым исходным кодом. [7] В июле 2013 года Google сообщил в своем блоге GWT, что переход к проекту с открытым исходным кодом завершен. [8]
Разработка с помощью GWT [ править ]
Используя GWT, разработчики имеют возможность разрабатывать и отлаживать приложения Ajax на языке Java, используя инструменты разработки Java по своему выбору. При развертывании приложения кросс-компилятор GWT преобразует приложение Java в автономные файлы JavaScript , которые при необходимости запутываются и глубоко оптимизируются. При необходимости JavaScript также можно встроить непосредственно в код Java с помощью комментариев Java. [9]
GWT не вращается только вокруг программирования пользовательского интерфейса; это широкий набор инструментов для создания высокопроизводительной клиентской функциональности JavaScript. Действительно, многие архитектурные решения полностью оставляются на усмотрение разработчика. Заявление о миссии GWT [10] разъясняет философское разделение роли GWT и роли разработчика. История является примером такого подхода: хотя GWT управляет токенами истории, когда пользователи нажимают «Назад» или «Вперед» в браузере, он не предписывает, как сопоставлять токены истории с состоянием приложения.
Приложения GWT можно запускать в двух режимах:
- Режим разработки (ранее — режим хостинга ): приложение запускается как байт-код Java на виртуальной машине Java (JVM). [11] Этот режим обычно используется для разработки, поддерживая горячую замену кода и отладку. В 2014 году классическая реализация режима разработки стала непригодной из-за обновлений браузера. [12] [13] до его замены на более совместимый Super Dev Mode , который стал режимом по умолчанию в GWT 2.7. [14]
- Рабочий режим (ранее веб-режим ): приложение запускается как чистый JavaScript и HTML, скомпилированный из исходного кода Java. Этот режим обычно используется для развертывания.
с открытым исходным кодом Доступно несколько плагинов , упрощающих разработку GWT с другими IDE , включая GWT4NB. [15] для NetBeans , Cypal Studio для GWT [16] ( плагин Eclipse ) и GWT Developer для JDeveloper . Плагин Google для Eclipse выполняет большинство задач, связанных с GWT, в IDE, включая создание проектов, вызов компилятора GWT, создание конфигураций запуска GWT, проверку и подсветку синтаксиса .
Компоненты [ править ]
Основные компоненты GWT включают в себя:
- GWT Компилятор Java-JavaScript [17] [18]
- Переводит язык программирования Java на язык программирования JavaScript.
- Режим разработки GWT
- Позволяет разработчикам запускать и выполнять приложения GWT в режиме разработки (приложение работает как Java в JVM без компиляции в JavaScript). До версии 2.0 режим размещения GWT предоставлял специальный «размещенный браузер» для отладки вашего кода GWT. В версии 2.0 отлаживаемая веб-страница просматривается в обычном браузере. Режим разработки поддерживается с помощью плагина собственного кода, называемого плагином разработчика Google Web Toolkit, для многих популярных браузеров.
- Библиотека эмуляции JRE
- Реализации JavaScript часто используемых классов в стандартной библиотеке классов Java (например, большинство классов пакета java.lang и подмножество классов пакета java.util).
- Библиотека классов веб-интерфейса GWT
- Набор пользовательских интерфейсов и классов для создания виджетов .
Особенности [ править ]
- Динамические и повторно используемые компоненты пользовательского интерфейса : программисты могут использовать встроенные классы для реализации трудоемких динамических действий, таких как перетаскивание или сложные визуальные древовидные структуры. [19]
- Простой RPC механизм
- Управление историей браузера
- Поддержка полнофункциональной отладки Java. [4]
- GWT решает некоторые проблемы кроссбраузерности для разработчика. [4]
- модульного тестирования Интеграция
- Поддержка интернационализации и локализации
- Поддержка HTML Canvas (возможны изменения API) [20]
- Разработчики могут смешивать рукописный JavaScript с исходным кодом Java, используя собственный интерфейс JavaScript (JSNI).
- Поддержка использования Google API в приложениях GWT (изначально поддержка Google Gears ).
- Открытый источник
- Разработчики могут проектировать и разрабатывать свои приложения чисто объектно-ориентированным способом, поскольку они используют Java (вместо JavaScript). [19] Распространенные ошибки JavaScript, такие как опечатки и несоответствия типов , обнаруживаются во время компиляции.
- JavaScript, генерируемый компилятором GWT, может быть либо необфусцированным (с отображением исходного кода или исходным кодом) и более простым для понимания, либо запутанным и сжатым. [19]
- Для GWT доступен ряд библиотек от Google и третьих сторон. Они расширяют возможности инструментария. [19]
Доступные виджеты [ править ]
Начиная с версии 2.4 (сентябрь 2011 г.), Google Web Toolkit предлагает несколько виджетов. [21] и панели. [21]
Виджеты | Панели |
---|---|
Кнопка | Всплывающая панель |
Нажать кнопку | СтекПанель |
Переключатель | СтекLayoutPanel |
Флажок | ГоризонтальнаяПанель |
DatePicker | Вертикальная панель |
Кнопка-переключатель | FlowPanel |
Текстовое окно | Вертикальная разделенная панель |
ПарольTextBox | Горизонтальная СплитПанель |
Текстовая область | СплитЛайаутПанель |
Гиперссылка | ДокПанель |
СписокСписок | Панель DockLayoutPanel |
Список ячеек | ТабПанель |
Строка меню | ТабLayoutPanel |
Дерево | Панель раскрытия информации |
ЯчейкаДерево | |
Суггестбокс | |
RichTextArea | |
FlexTable | |
Сетка | |
Таблица ячеек | |
CellBrowser | |
Таббар | |
Диалоговое окно |
Многие распространенные виджеты, отсутствующие в GWT, были реализованы в сторонних библиотеках.
Корпоративное использование [ править ]
GWT использует или поддерживает Java , Apache Tomcat (или аналогичный веб-контейнер), Eclipse IDE , Internet Explorer , [22] а также интернационализация и локализация . GWT на основе Java Веб-приложения с поддержкой можно тестировать с помощью среды тестирования JUnit и инструментов покрытия кода. Поскольку GWT позволяет проверять изображения, CSS и бизнес-логику во время компиляции, многие распространенные дефекты разработки обнаруживаются автоматически, не требуя ручного тестирования, обычно требуемого RIA.
Google отметил, что некоторые из ее продуктов основаны на GWT: [23] Blogger , AdWords , Авиабилеты , Кошелек , Предложения , Группы , Входящие . [24]
ГВТ 2.0 [ править ]
8 декабря 2009 г. Google запустил Google Web Toolkit 2.0 со Speed Tracer. [25]
Версия 2.0 GWT предлагает ряд новых функций, [26] включая:
- Режим разработки в браузере (ранее известный как режим размещения вне процесса, OOPHM): до версии 2.0 режим размещения использовался для встраивания модифицированного браузера, позволяющего запускать версию байт-кода приложения во время разработки. В версии 2.0 размещенный режим, переименованный в «режим разработки», позволяет использовать любой (поддерживаемый) браузер для просмотра отлаживаемой страницы с помощью плагина браузера. Плагин взаимодействует с оболочкой режима разработки с помощью TCP/IP, что позволяет осуществлять кросс-платформенную отладку (например, отладку в Internet Explorer в Windows из оболочки режима разработки, работающей на машине Linux).
- Разделение кода: если разработчик предоставляет «точки разделения» в исходном коде, компилятор GWT может разделить код JavaScript на несколько небольших фрагментов вместо одной большой загрузки. Это приведет к сокращению времени запуска приложения, поскольку уменьшится размер первоначальной загрузки.
- Декларативный пользовательский интерфейс: используя формат XML, новая функция, известная как UiBinder, позволяет создавать пользовательские интерфейсы посредством декларации, а не кода. Это позволяет четко разделить создание пользовательского интерфейса и реализацию поведения.
- Объединение ресурсов: интерфейс ClientBundle позволит объединять ресурсы любого характера (изображения, CSS, текст, двоичные файлы) и передавать их за одну загрузку, что приводит к меньшему количеству обращений к серверу и, следовательно, к снижению задержки приложения.
Поскольку в новом режиме разработки удалена большая часть кода, специфичного для платформы, новая версия будет распространяться в виде уникального архива, а не по одному для каждой поддерживаемой платформы, как это было в предыдущих версиях.
Мобильный [ править ]
В качестве общей платформы для создания веб-приложений Google Web Toolkit также можно использовать в качестве платформы для создания приложений для мобильных устройств и планшетов, либо путем создания необходимых виджетов и анимации с нуля, либо с использованием одной из мобильных платформ для GWT. Приложение HTML5, написанное на GWT, может иметь отдельные представления для планшетов и мобильных телефонов.
См. также [ править ]
- Дарт (язык программирования)
- Плагин Google для Eclipse
- Google-код
- Сравнение веб-фреймворков на основе JavaScript
- Сравнение веб-фреймворков
- Emscripten для преобразования C++ в JavaScript или WebAssembly
- синдром РАС
Ссылки [ править ]
- ^ «Политика использования имен GWT» . Проверено 23 апреля 2014 г.
- ^ «Информация о лицензии Google Web Toolkit» . 23 февраля 2007 года . Проверено 25 сентября 2007 г.
- ^ «Архив выпусков Google Web Toolkit» . Проверено 25 сентября 2007 г.
- ^ Перейти обратно: а б с Олсон, Стивен Дуглас (2007). Аякс на Java . О'Рейли. п. 183. ИСБН 978-0-596-10187-9 .
- ^ Рамсдейл, Крис. «Google перезапускает инструменты разработчика создания экземпляров» .
- ^ «Блог Google Web Toolkit: GWT и Dart» . Googlewebtoolkit.blogspot.com. 10 ноября 2011 года . Проверено 16 июня 2013 г.
- ^ Vaadin поддержит разработку Google Web Toolkit (GWT) . vaadin.com (29 июня 2012 г.). Проверено 15 мая 2014 г.
- ^ Блог Google Web Toolkit: Новости GWT . Googlewebtoolkit.blogspot.com (15 июля 2013 г.). Проверено 15 мая 2014 г.
- ^ «Основы кодирования — собственный интерфейс JavaScript (JSNI) — Google Web Toolkit — Google Developers» . Google Inc., 25 октября 2012 г. Проверено 16 июня 2013 г.
- ^ Заявление о миссии GWT
- ^ Отладка в режиме разработки
- ^ «Режим разработки не будет поддерживаться в Firefox 27+» . [email protected] (список рассылки).
- ^ «Плагин разработчика GWT больше не работает с Chrome в Linux» . [email protected] (список рассылки).
- ^ «Режим суперразработчика» .
- ^ GWT4NB
- ^ Cypal Studio для GWT
- ^ «com.google.gwt.dev.Компилятор» . Гитхаб .
Основная точка входа исполняемого файла для компилятора GWT Java в JavaScript.
- ^ «com.google.gwt.dev.jjs.JavaToJavaScriptCompiler» . Гитхаб .
База для классов, компилирующих Java.
JProgram
представления в соответствующий источник Js. - ^ Перейти обратно: а б с д Перри, Брюс В. (2007). Google Web Toolkit для Ajax . О'Рейли Короткие пути. О'Рейли. стр. 1–5. ISBN 978-0-596-51022-0 .
- ^ «Холст Javadoc GWT» .
- ^ Перейти обратно: а б «Список виджетов» . Гугл Инк . Проверено 21 мая 2012 г.
- ^ Проект GWT . Проект ГВТ. Проверено 15 мая 2014 г.
- ^ «Google I/O 2012 — история и будущее Google Web Toolkit» . Разработчики Google . Проверено 18 марта 2013 г.
- ^ Тубасси, Гаррик. «Под капотом Inbox» . Официальный блог Gmail . Проверено 22 ноября 2014 г.
- ^ Представляем Google Web Toolkit 2.0, теперь со Speed Tracer.
- ^ «Объявление о вехе 1 GWT 2.0» . Амит Манджи . Проверено 5 октября 2009 г.
Библиография [ править ]
- Дьюсбери, Райан (15 декабря 2007 г.). Приложения Google Web Toolkit . Прентис Холл . п. 608. ИСБН 978-0-321-50196-7 .
- Чаганти, Прабхакар (15 февраля 2007 г.). Google Web Toolkit: GWT Java Ajax-программирование . Издательство Пакт . п. 248. ИСБН 978-1-84719-100-7 .
- Гири, Дэвид (17 ноября 2007 г.). Решения Google Web Toolkit: еще больше интересных и полезных вещей . Прентис Холл . п. 408. ИСБН 978-0-13-234481-4 .
- Хэнсон, Роберт; Адам Тейси (7 февраля 2013 г.). GWT в действии (2-е изд.). Мэннинг . п. 643. ИСБН 978-1-935182-84-9 .
- Купер, Роберт; Чарли Коллинз (12 мая 2008 г.). ГВТ на практике . Мэннинг . п. 376 . ISBN 978-1-933988-29-0 .