Google Web Toolkit - Google Web Toolkit

Google Web Toolkit
Gwt logo.png
Оригинальный автор (ы)Google
изначальный выпуск16 мая 2006 г.; 14 лет назад (2006-05-16)
Стабильный выпуск
2.9.0 / 2 мая 2020 г.; 6 месяцев назад (2020-05-02)
Репозиторий Отредактируйте это в Викиданных
Написано вЯва
Операционная системаLinux, Windows, OS X, FreeBSD
Доступно вЯва
ТипФреймворк Ajax
ЛицензияЛицензия Apache 2.0
Интернет сайтwww.gwtproject.org

Google Web Toolkit (GWT /ˈɡшɪт/), или же GWT Web Toolkit,[1] является Открытый исходный код набор из инструменты это позволяет веб-разработчики создавать и поддерживать JavaScript внешний интерфейс приложения в Ява. За исключением нескольких собственных библиотек, все является исходным кодом Java, который может быть построен на любой поддерживаемой платформе с включенным GWT. Муравей файлы сборки. Он лицензирован под Лицензия Apache 2.0.[2]

GWT подчеркивает многоразовый подходы к общим задачам веб-разработки, а именно асинхронные удаленные вызовы процедур, управление историей, закладки, UI абстракция интернационализация, и кроссбраузерность переносимость.

История

GWT версии 1.0 RC 1 был выпущен 16 мая 2006 года.[3] Google анонсировал GWT на JavaOne конференция, 2006.[4]

История выпуска
РелизДата
GWT 1.017 мая 2006 г.
GWT 1.111 августа 2006 г.
GWT 1.216 ноября 2006 г.
GWT 1.35 февраля 2007 г.
GWT 1.428 августа 2007 г.
GWT 1.527 августа 2008 г.
GWT 1.67 апреля 2009 г.
GWT 1.713 июля 2009 г.
GWT 2.08 декабря 2009 г.
GWT 2.1.019 октября 2010 г.
GWT 2.2.011 февраля 2011 г.
GWT 2.3.03 мая 2011 г.
GWT 2.4.08 сентября 2011 г.
GWT 2.5.0Октябрь 2012 г.
GWT 2.5.1Март 2013 г.
GWT 2.6.030 января 2014 г.
GWT 2.6.110 мая 2014 г.
GWT 2.7.020 ноября 2014 г.
GWT 2.8.020 октября 2016 г.
GWT 2.8.124 апреля 2017 г.
GWT 2.8.219 октября 2017 г.
GWT 2.9.02 мая, 2020

В августе 2010 года компания Google приобрела Instantiations,[5] компания, известная своим вниманием к инструментам разработчика Eclipse Java, включая GWT Designer, который теперь связан с Плагин Google для Eclipse.

В 2011 году с введением Язык программирования дарт, Google заверил сообщество GWT, что GWT будет продолжать поддерживаться в обозримом будущем, но также намекнул на возможное сближение двух подходов Google к «структурированному веб-программированию». Однако они также признали, что ряд инженеров, ранее работавших над GWT, теперь работают над Дротик.[6]

В 2012 году на своей ежегодной конференции ввода-вывода Google объявил, что GWT будет преобразован из проекта Google в проект с полностью открытым исходным кодом.[7] В июле 2013 года Google опубликовал в своем блоге GWT сообщение о завершении преобразования в проект с открытым исходным кодом.[8]

Разработка с GWT

Используя GWT, разработчики могут разрабатывать и отлаживать Аякс приложения на языке Java с использованием инструментов разработки Java по своему выбору. Когда приложение развернуто, кросс-компилятор GWT переводит приложение Java в автономное JavaScript файлы, которые необязательно запутанный и глубоко оптимизирован. При необходимости JavaScript также может быть встроен непосредственно в код Java с использованием комментариев Java.[9]

GWT не вращается только вокруг программирования пользовательского интерфейса; это общий набор инструментов для создания любых высокопроизводительных клиентских функций JavaScript. Действительно, многие ключевые архитектурные решения полностью оставлены на усмотрение разработчика. Заявление о миссии GWT[10] разъясняет философское разделение роли GWT и роли разработчика. Примером этого является история: хотя GWT управляет токенами истории, когда пользователи нажимают «Назад» или «Вперед» в браузере, он не предписывает, как отображать токены истории в состояние приложения.

Приложения GWT могут работать в двух режимах:

  • Режим разработки (ранее Размещенный режим): Приложение запускается как байт-код Java в Виртуальная машина Java (JVM).[11] Этот режим обычно используется для разработки, поддержки горячая замена кода и отладка. В 2014 году классическая реализация Dev Mode перестала работать из-за обновлений браузера.[12][13] до его замены на более совместимую Режим супер-разработки, который стал по умолчанию в GWT 2.7.[14]
  • Режим производства (ранее Интернет-режим): Приложение запускается как чистый JavaScript и HTML, скомпилированный из исходного кода Java. Этот режим обычно используется для развертывания.

Несколько open-source плагины доступны для упрощения разработки GWT с другими Иды, в том числе GWT4NB[15] за NetBeans, Cypal Studio для GWT[16] (ан Затмение плагин) и GWT Developer для JDeveloper. В Плагин Google для Eclipse обрабатывает большинство задач, связанных с GWT, в среде IDE, включая создание проектов, вызов компилятора GWT, создание конфигураций запуска GWT, проверку и подсветка синтаксиса.

Составные части

Основные компоненты GWT включают:

Компилятор GWT Java-to-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 и третьих лиц. Они расширяют возможности GWT.[19]

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

Начиная с версии 2.4 (сентябрь 2011 г.), GWT предлагает несколько виджеты[21] и панели.[21]

Виджеты и панели
ВиджетыПанели
КнопкаPopupPanel
Нажать кнопкуStackPanel
ПереключательStackLayoutPanel
CheckBoxГоризонтальная панель
DatePickerВертикальная панель
Кнопка-переключательFlowPanel
Текстовое окноVerticalSplitPanel
PasswordTextBoxHorizontalSplitPanel
TextAreaSplitLayoutPanel
ГиперссылкаДокПанель
ListBoxDockLayoutPanel
CellListTabPanel
Строка менюTabLayoutPanel
ДеревоDisclosurePanel
CellTree
SuggestBox
RichTextArea
FlexTable
Сетка
CellTable
CellBrowser
TabBar
Диалоговое окно

Многие общие виджеты, которых нет в GWT, были реализованы в сторонних библиотеках.

Использование на предприятии

GWT использует или поддерживает Ява, Apache Tomcat (или аналогичный веб-контейнер), Eclipse IDE, Internet Explorer,[22] и интернационализация и локализация. GWT на основе Java RIA можно протестировать с помощью JUnit фреймворк тестирования и инструменты покрытия кода. Поскольку GWT позволяет проверять изображения, CSS и бизнес-логику во время компиляции, многие распространенные дефекты разработки автоматически обнаруживаются без необходимости ручного тестирования, обычно требуемого RIA.

Google отмечает, что некоторые из его продуктов основаны на GWT:[23] Blogger, AdWords, Рейсы, Бумажник, Предложения, Группы, Входящие.[24]

GWT 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, текст, двоичные файлы) и передавать за одну загрузку, что приводит к меньшему количеству обращений к серверу и, следовательно, снижению задержки приложения.

Поскольку в новом режиме разработки была удалена большая часть кода, зависящего от платформы, новая версия будет распространяться в виде уникального архива, а не по одному на каждую поддерживаемую платформу, как это было в предыдущих версиях.

Мобильный

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

Смотрите также

Рекомендации

  1. ^ «Политика использования имени GWT». Google. Получено 2014-04-23.
  2. ^ "Информация о лицензии Google Web Toolkit". Google. 23 февраля 2007 г.. Получено 2007-09-25.
  3. ^ "Архив выпусков Google Web Toolkit". Google. Получено 2007-09-25.
  4. ^ а б c Олсон, Стивен Дуглас (2007). Ajax на Java. О'Рейли. п. 183. ISBN  978-0-596-10187-9.
  5. ^ Рамсдейл, Крис. "Google перезапускает инструменты разработчика для создания экземпляров".
  6. ^ "Блог Google Web Toolkit: GWT и Dart". Googlewebtoolkit.blogspot.com. 2011-11-10. Получено 2013-06-16.
  7. ^ Vaadin поддержит разработку Google Web Toolkit (GWT). vaadin.com (29.06.2012). Проверено 15 мая 2014.
  8. ^ Блог Google Web Toolkit: Новости GWT. Googlewebtoolkit.blogspot.com (15.07.2013). Проверено 15 мая 2014.
  9. ^ «Основы кодирования - собственный интерфейс JavaScript (JSNI) - Google Web Toolkit - разработчики Google». Developers.google.com. 2012-10-25. Получено 2013-06-16.
  10. ^ Заявление о миссии GWT
  11. ^ Отладка в режиме разработки
  12. ^ «Режим разработки не будет поддерживаться в Firefox 27+». [email protected] (Список рассылки).
  13. ^ «Плагин разработчика GWT больше не работает с Chrome в Linux». [email protected] (Список рассылки).
  14. ^ «Режим супер-разработки».
  15. ^ GWT4NB
  16. ^ Cypal Studio для GWT
  17. ^ "com.google.gwt.dev.Compiler". Основная исполняемая точка входа для компилятора GWT Java to JavaScript.
  18. ^ "com.google.gwt.dev.jjs.JavaToJavaScriptCompiler". База для классов, компилирующих Java JPпрограмма представления в соответствующий источник Js.
  19. ^ а б c d Перри, Брюс В. (2007). Google Web Toolkit для Ajax. Короткие сокращения О'Рейли. О'Рейли. С. 1–5. ISBN  978-0-596-51022-0.
  20. ^ "GWT Javadoc Canvas".
  21. ^ а б «Список виджетов». Google. Получено 2012-05-21.
  22. ^ GWT Project. GWT Project. Проверено 15 мая 2014.
  23. ^ «Google I / O 2012 - История и будущее Google Web Toolkit». GoogleDevelopers. Получено 2013-03-18.
  24. ^ Тубасси, Гаррик. "Под капотом Inbox". Официальный блог Gmail. Получено 22 ноября 2014.
  25. ^ Представляем Google Web Toolkit 2.0, теперь с Speed ​​Tracer
  26. ^ «Анонс GWT 2.0 - веха 1». Амит Манджи. Получено 2009-10-05.

Библиография