Бесплатная библиотека Java
Google Web Toolkit ( GWT ), или 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]
В августе 2010 года Google приобрела Instantiations, [5] компанию, известную тем, что специализируется на инструментах разработки Java для Eclipse, включая GWT Designer, который теперь входит в состав плагина Google для Eclipse .
В 2011 году, представив язык программирования Dart , Google заверил сообщество GWT, что 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]
Многие распространенные виджеты, отсутствующие в GWT, были реализованы в сторонних библиотеках.
Корпоративное использование
GWT использует или поддерживает Java , Apache Tomcat (или аналогичный веб-контейнер), Eclipse IDE , Internet Explorer , [22] , а также интернационализацию и локализацию . Веб-приложения с поддержкой GWT на основе Java можно тестировать с помощью среды тестирования JUnit и инструментов покрытия кода. Поскольку GWT позволяет проверять изображения, CSS и бизнес-логику во время компиляции, многие распространенные дефекты разработки обнаруживаются автоматически, не требуя ручного тестирования, обычно требуемого RIA.
Google отметил, что некоторые из ее продуктов основаны на GWT: [23] Blogger , AdWords , Flights , Wallet , Offers , Groups , Inbox . [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, может иметь отдельные представления для планшетов и мобильных телефонов.
Смотрите также
Рекомендации
- ^ «Политика использования имен GWT» . Проверено 23 апреля 2014 г.
- ^ «Информация о лицензии Google Web Toolkit» . 23 февраля 2007 года . Проверено 25 сентября 2007 г.
- ^ «Архив выпусков Google Web Toolkit» . Проверено 25 сентября 2007 г.
- ^ abc Олсон, Стивен Дуглас (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» . 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 в соответствующий исходный код Js.
JProgram
- ^ abcd Перри, Брюс В. (2007). Google Web Toolkit для Ajax . О'Рейли Короткие пути. О'Рейли. стр. 1–5. ISBN 978-0-596-51022-0.
- ^ "Холст Javadoc GWT" .
- ^ ab «Список виджетов». Гугл Инк . Проверено 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 г.
Библиография