Эта статья содержит контент, который написан как реклама . ( Октябрь 2019 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Оригинальный автор (ы) | |
---|---|
изначальный выпуск | 16 мая 2006 г . |
Стабильный выпуск | 2.9.0 / 2 мая 2020 г . |
Репозиторий | |
Написано в | Ява |
Операционная система | Linux , Windows , OS X , FreeBSD |
Доступно в | Ява |
Тип | Фреймворк Ajax |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | www |
Google Web Toolkit ( GWT / ɡ ж ɪ т / ), или GWT Web Toolkit , [1] является открытым исходным кодом , набор инструментов , который позволяет веб - разработчикам создавать и поддерживать JavaScript интерфейсных приложений в Java . За исключением нескольких собственных библиотек, все является исходным кодом Java, который может быть построен на любой поддерживаемой платформе с включенными файлами сборки GWT Ant . Он находится под лицензией Apache License 2.0 . [2]
GWT подчеркивает многоразовые подходов к решению общих задач веб - разработки, а именно асинхронных вызовов удаленных процедур , управление историей, закладки , пользовательский интерфейс абстракции, интернационализации и кросс-браузерный портативности .
История [ править ]
GWT версии 1.0 RC 1 был выпущен 16 мая 2006 г. [3] Google анонсировал GWT на конференции JavaOne в 2006 г. [4]
Релиз | Дата |
---|---|
GWT 1.0 | 17 мая 2006 г. |
GWT 1.1 | 11 августа 2006 г. |
GWT 1.2 | 16 ноября 2006 г. |
GWT 1.3 | 5 февраля 2007 г. |
GWT 1.4 | 28 августа 2007 г. |
GWT 1.5 | 27 августа 2008 г. |
GWT 1.6 | 7 апреля 2009 г. |
GWT 1.7 | 13 июля 2009 г. |
GWT 2.0 | 8 декабря 2009 г. |
GWT 2.1.0 | 19 октября 2010 г. |
GWT 2.2.0 | 11 февраля 2011 г. |
GWT 2.3.0 | 3 мая 2011 г. |
GWT 2.4.0 | 8 сентября 2011 г. |
GWT 2.5.0 | Октябрь 2012 г. |
GWT 2.5.1 | Март 2013 г. |
GWT 2.6.0 | 30 января 2014 г. |
GWT 2.6.1 | 10 мая 2014 г. |
GWT 2.7.0 | 20 ноября 2014 г. |
GWT 2.8.0 | 20 октября 2016 г. |
GWT 2.8.1 | 24 апреля 2017 г. |
GWT 2.8.2 | 19 октября 2017 г. |
GWT 2.9.0 | 2 мая, 2020 |
В августе 2010 года Google приобрела Instantiations [5], компанию, известную своим вниманием к инструментам разработчика Eclipse Java, включая GWT Designer, который теперь входит в состав плагина Google для Eclipse .
В 2011 году, представив язык программирования Dart , Google заверил сообщество GWT в том, что GWT будет поддерживаться в обозримом будущем, но также намекнул на возможное сближение двух подходов Google к «структурированному веб-программированию». Однако они также признали, что ряд инженеров, ранее работавших над GWT, теперь работают над Dart . [6]
В 2012 году на своей ежегодной конференции ввода-вывода 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 году классическая реализация Dev Mode стала непригодной для использования в результате обновлений браузера [12] [13], пока ее не заменили более совместимым Super Dev Mode , который стал по умолчанию в GWT 2.7. [14]
- Рабочий режим (ранее Web-режим ): приложение запускается как чистый JavaScript и HTML, скомпилированный из исходного кода Java. Этот режим обычно используется для развертывания.
Несколько открытым исходным кодом плагины доступны для создания разработки GWT проще с другими средами разработки , в том числе GWT4NB [15] для NetBeans , Cypal студии для GWT [16] ( Eclipse , плагин), и 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 |
PasswordTextBox | HorizontalSplitPanel |
TextArea | SplitLayoutPanel |
Гиперссылка | ДокПанель |
ListBox | DockLayoutPanel |
CellList | TabPanel |
Строка меню | TabLayoutPanel |
Дерево | DisclosurePanel |
CellTree | |
SuggestBox | |
RichTextArea | |
FlexTable | |
Сетка | |
CellTable | |
CellBrowser | |
TabBar | |
Диалоговое окно |
Многие общие виджеты, которых нет в GWT, были реализованы в сторонних библиотеках.
Использование на предприятии [ править ]
GWT использует или поддерживает Java , Apache Tomcat (или аналогичный веб - контейнер), Eclipse IDE , Internet Explorer , [22] и интернационализация и локализация . GWT RIA на основе Java можно тестировать с помощью среды тестирования 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, может иметь отдельные представления для планшетов и мобильных телефонов.
См. Также [ править ]
- Dart (язык программирования)
- Плагин Google для Eclipse
- Код Google
- Сравнение фреймворков JavaScript
- Сравнение веб-фреймворков
- Emscripten для преобразования C ++ в JavaScript или WebAssembly
Ссылки [ править ]
- ^ «Политика использования имени GWT» . Проверено 23 апреля 2014 .
- ^ «Информация о лицензии Google Web Toolkit» . 23 февраля 2007 . Проверено 25 сентября 2007 .
- ^ "Архив выпусков Google Web Toolkit" . Проверено 25 сентября 2007 .
- ^ a b c Олсон, Стивен Дуглас (2007). Ajax на Java . О'Рейли. п. 183. ISBN. 978-0-596-10187-9.
- ^ Рамсдейл, Крис. «Google перезапускает инструменты разработчика для создания экземпляров» .
- ^ «Блог Google Web Toolkit: GWT и Dart» . Googlewebtoolkit.blogspot.com. 2011-11-10 . Проверено 16 июня 2013 .
- ^ Vaadin для поддержки разработки Google Web Toolkit (GWT) . vaadin.com (29.06.2012). Проверено 15 мая 2014.
- ^ Блог Google Web Toolkit: Новости GWT . Googlewebtoolkit.blogspot.com (15.07.2013). Проверено 15 мая 2014.
- ^ «Основы кодирования - JavaScript Native Interface (JSNI) - Google Web Toolkit - Google Developers» . Google Inc. 2012-10-25 . Проверено 16 июня 2013 .
- ^ Заявление о миссии GWT
- ^ Отладка в режиме разработки
- ^ «Режим разработки не будет поддерживаться в Firefox 27+» . [email protected] (список рассылки).
- ^ «Плагин разработчика GWT больше не работает с Chrome в Linux» . [email protected] (список рассылки).
- ^ "Super Dev Mode" .
- ^ GWT4NB
- ^ Cypal Studio для GWT
- ^ "com.google.gwt.dev.Compiler" .
Основная исполняемая точка входа для компилятора GWT Java to JavaScript.
- ^ "com.google.gwt.dev.jjs.JavaToJavaScriptCompiler" .
База для классов, которые компилируют
представления
Java
в соответствующий исходный код Js.
JProgram
- ^ а б в г Перри, Брюс В. (2007). Google Web Toolkit для Ajax . Короткие сокращения О'Рейли. О'Рейли. С. 1–5. ISBN 978-0-596-51022-0.
- ^ "GWT Javadoc Canvas" .
- ^ a b «Список виджетов» . Google Inc . Проверено 21 мая 2012 .
- ^ Проект GWT . GWT Project. Проверено 15 мая 2014.
- ^ «Google I / O 2012 - История и будущее Google Web Toolkit» . GoogleDevelopers . Проверено 18 марта 2013 .
- ^ Тубасси, Гаррик. «Идет под капот Inbox» . Официальный блог Gmail . Проверено 22 ноября 2014 года .
- ^ Представляем Google Web Toolkit 2.0, теперь с Speed Tracer
- ^ "Объявление первого этапа GWT 2.0" . Амит Манджи . Проверено 5 октября 2009 .
Библиография [ править ]
- Дьюсбери, Райан (15 декабря 2007 г.). Приложения Google Web Toolkit . Прентис Холл . п. 608. ISBN 978-0-321-50196-7.
- Чаганти, Прабхакар (15 февраля 2007 г.). Google Web Toolkit: GWT Java Ajax Programming . Packt Publishing . п. 248. ISBN 978-1-84719-100-7.
- Гири, Дэвид (17 ноября 2007 г.). Решения Google Web Toolkit: больше интересных и полезных материалов . Прентис Холл . п. 408. ISBN 978-0-13-234481-4.
- Хэнсон, Роберт; Адам Тейси (7 февраля 2013 г.). GWT в действии (2-е изд.). Мэннинг . п. 643. ISBN 978-1-935182-84-9.
- Купер, Роберт; Чарли Коллинз (12 мая 2008 г.). GWT на практике . Мэннинг . п. 376 . ISBN 978-1-933988-29-0.