Добрый день дамы и господа,
Эта статья предназначена в первую очередь начинающим и навряд ли принесет какую либо пользу людям бывалым. Но было бы неплохо, если бы люди с опытом привели бы парочку полезных ссылок в комментариях.
Итак, знакомство я советую начать с
демо. Тогда вы сможете себе представить, а что GWT вообще может и какие виджеты доступны прямо из коробки. GWT безусловно весьма сильный Фреймворк, но его чуть ли не самая главная беда заключается как раз в том, что этих самых виджетов не так уж и много. Но эта не беда, т.к. есть много различных библиотек, которые эту проблему решают. Особый расцвет пришелся на время 2-3 года назад, когда много чего в GWT просто не было и явных фаворитов среди сторонних библиотек тоже не было заметно. Сейчас ситуация довольно сильно изменилась. Поэтому если вам нужен какой нибудь продвинутый виджет, то советую обратить внимание на SmartGWT и Ext-GWT.
Добрый день дамы и господа,
На хабре есть не так много статей на тему GWT (Google Web Toolkit) и в большинстве своем написаны они в ключе «какая это бяка, ничего не умеет, ничего не понятно». Кроме того, как показывает мой опыт, большинство программистов о GWT вообще ничего не слышали, а те кто слышал, думают, что больше чем на „Hello World“он не способен. Я постараюсь показать вам, что с помощью этого замечательного Фреймворка можно делать такие вещи, которые большинству JavaScript программистам просто не по зубам.
Перед началом небольшое отступление, т.к. вопрос «а зачем?» обязательно прозвучит. Этот сайт я написал на GWT, т.к. у меня и выбора то не было. С HTML,CSS, PHP и JavaScriptом я знаком(был) весьма поверхностно( как собственно и большинство Java-программистов), а вот идея и желание были. А потому использовал я что имел и получилось вроде весьма не плохо.
Посмотрите на этот
сайт. Да это не шедевр, но он показывает, что GWT может все, что может JavaScript и даже больше. Почему больше? Ответ на этот вопрос полностью совпадает с ответом на вопрос: «почему С++ может больше чем Assembler?». На эту тему я предлагаю подискутировать в комментариях. А мы возвращаемся к GWT. Нет ничего лучше( мое стойкое убеждение), чем объяснять что либо на примере, а посему я предлагаю вам препарировать этот сайт.

Данный пост является началом серии статей про оптимизацию и улучшение производительности GWT-приложений. Поскольку материала у меня накопилось достаточно много, решил разбить его на 2-3 части.
Приступим к описанию того, что нас ждёт в первой статье.
21 ноября 2011, 11:28
102
Вступление
Несомненно, сейчас уже многие знают, что такое
GWT. Многие знают, что за концепция —
MVP. При этом, ещё не многие слышали о фреймворке
mvp4g (облегчённая реализация MVP для GWT) — а я бы хотел, чтобы на него обратили внимание как можно больше GWT-программистов: фреймворк значительно упрощает написание MVP-кода и явно повышает его наглядность. По этой причине я делал о нём
доклад на конференции
ADDConf, видео которого представляю ниже.
В статью я добавил, кроме прочего,
отзыв о конфренции и докладах которые я видел, а также
ссылки/описание работающего примера создания системы портлетов/порталов на GWT+mvp4g, я его упоминал в докладе.
JavaScript-библиотеки Ext JS и Ext GWT известны, помимо прочего, одним из лучших наборов визуальных компонентов — как по дизайну, так и по кроссбраузерности, да и по стабильности работы. Потому и руки сами тянутся к любому проекту на GWT добавить Ext и заменить скучные гугловые виджеты на симпатичные формы и окошки.
Однако интеграция Ext GWT и GWT до сих пор оставляла желать лучшего — по сути, вторая версия Ext GWT полностью вытесняет все средства компоновки интерфейса GWT, предлагая собственные API для всего, вплоть до обработки событий. Поэтому для третьей версии библиотеки, доступной сейчас в виде
developer preview, разработчики из Sencha активно переписывают скриптовое наследие Ext JS, используя паттерны и идиомы, принятые в GWT. Главное ожидаемое преимущество — более корректная интеграция с GWT и, как следствие, более компактный и оптимизированный код интерфейса: генерация и обфускация JavaScript и CSS происходит на этапе GWT-компиляции, с использованием механизма deferred binding, за счёт чего исключаются фрагменты кода, не использующиеся в текущем проекте.
29 апреля я читал мастер-класс по веб-разработке на
GWT с использованием фреймворка
mvp4g, на конференции
Application Developer Days 2011. Предоставляю вам слайды (видео должно быть позже).
Слайды
Вышла обновленная версия фреймворка GWT (
Google Web Toolit) с номером 2.2.
Фреймворк позволяет создавать Web-приложение на Java с последующей компиляцией клиентской части в JavaScript.
Среди главных изменений в новой версии числятся:
- интегрированный визуальный дизайнер пользовательского интерфейса;
- поддержка HTML5-тегов Canvas, Audio и Video;
- новое API для работы с таблицами;
- менее строгий парсер SafeHtml;
- перевод Java версии 1.5 в разряд устаревшей (выводится предупреждение).
Пример использования HTML5 Canvas доступен по ссылке:
http://gwtcanvasdemo.appspot.com/
12 февраля 2011, 21:13
14
Когда я писал топик об использовании
шаблона Command для организации RPC-вызовов в GWT то упоминал об MVP-паттерне для построения архитектуры GWT-проектов. Сразу после выступления товарища Ray Rayan’а с докладом о проектировании сложных приложений на GWT трудящиеся по всему миру принялись реализовывать озвученные идеи в виде библиотек и фреймворков. Результатом этих трудов стали средства, позволяющие применять как некоторые моменты MVP-подхода (
GWT-Presenter) так и его целиком (
Mvp4G). Это все замечательно, но мне лично (уверен, что и остальным GWT-разработчикам) хотелось бы иметь стандартизированный (если можно так сказать) фреймворк/подход для организации GWT-приложений по MVP-схеме. И вот команда, которая отвечает в Google за GWT, наконец-то в версии 2.1 наряду с остальными вкусными плюшками предложила встроенный MVP-фреймворк.
В данной заметке я постараюсь осветить основные моменты встроенного GWT MVP-фреймворка. Как пример будет использовано небольшое приложение, построенное с применением этого подхода.
Данная заметка является вольным трактатом (
GWT MVP Development) и на уникальность подхода никоим образом не претендует. Если кого-то заинтересовало такое немаленькое введение
Вышедший в октябре релиз
GWT 2.1 вызвал широкий резонанс в среде разработчиков. Было получено много отзывов и пожеланий часть из которых была реализована и вошла в
GWT 2.1.1.
Одновременно обновлены
Google Plugin for Eclipse и
GWT Designer.
Ссылки для скачвания:
Подробную информацию можно найти в официальном сообщении
GWT 2.1.1 is now available, а ниже — основные обновления.
GWT SDK
Компонент
RequestFactory, добавленный в GWT 2.1, привлек большое внимание сообщества. Исходя из полученных пожеланий была добавлена следующая фунциональность:
- Сервисный слой (service layer), который включает поддержку не статичных сервис-объектов (non-static service objects)
- Поддержка объекта-значения (value object)
- Вызов нескольких методов для одного запроса
Google Plugin for Eclipse
- Улучшен UiBinder error reporting в SpringSource Tool Suite (STS)
- Оптимизировано поведение IDE: удалены неиспользуеме Java builders, последний релиз STS содержит исправления для AspectJ
- Speed Tracer совершает полный J2EE паблишинг до запуска
GWT Designer
- Добавлена поддержка: CellList, CellTable, CellTree, CellBrowser и SimplePager
- Улучшена поддержка UiBinder, включая аннотации (annotations):
- WebKit рендеринг для 32-bit Windows (используется для IE)
Удачи в разработке!