Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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]

В августе 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]

Многие общие виджеты, которых нет в 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

Ссылки [ править ]

  1. ^ «Политика использования имени GWT» . Проверено 23 апреля 2014 .
  2. ^ «Информация о лицензии Google Web Toolkit» . 23 февраля 2007 . Проверено 25 сентября 2007 .
  3. ^ "Архив выпусков Google Web Toolkit" . Проверено 25 сентября 2007 .
  4. ^ a b 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 . Проверено 16 июня 2013 .
  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 Native Interface (JSNI) - Google Web Toolkit - Google Developers» . Google Inc. 2012-10-25 . Проверено 16 июня 2013 .
  10. ^ Заявление о миссии GWT
  11. ^ Отладка в режиме разработки
  12. ^ «Режим разработки не будет поддерживаться в Firefox 27+» . [email protected] (список рассылки).
  13. ^ «Плагин разработчика GWT больше не работает с Chrome в Linux» . [email protected] (список рассылки).
  14. ^ "Super Dev Mode" .
  15. ^ GWT4NB
  16. ^ Cypal Studio для GWT
  17. ^ "com.google.gwt.dev.Compiler" . Основная исполняемая точка входа для компилятора GWT Java to JavaScript.
  18. ^ "com.google.gwt.dev.jjs.JavaToJavaScriptCompiler" . База для классов, которые компилируют представления Java в соответствующий исходный код Js.JProgram
  19. ^ а б в г Перри, Брюс В. (2007). Google Web Toolkit для Ajax . Короткие сокращения О'Рейли. О'Рейли. С. 1–5. ISBN 978-0-596-51022-0.
  20. ^ "GWT Javadoc Canvas" .
  21. ^ a b «Список виджетов» . Google Inc . Проверено 21 мая 2012 .
  22. ^ Проект GWT . GWT Project. Проверено 15 мая 2014.
  23. ^ «Google I / O 2012 - История и будущее Google Web Toolkit» . GoogleDevelopers . Проверено 18 марта 2013 .
  24. ^ Тубасси, Гаррик. «Идет под капот Inbox» . Официальный блог Gmail . Проверено 22 ноября 2014 года .
  25. ^ Представляем Google Web Toolkit 2.0, теперь с Speed ​​Tracer
  26. ^ "Объявление первого этапа 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.