
Данный пост является началом серии статей про оптимизацию и улучшение производительности GWT-приложений. Поскольку материала у меня накопилось достаточно много, решил разбить его на 2-3 части.
Приступим к описанию того, что нас ждёт в первой статье.
Вступление
Несомненно, сейчас уже многие знают, что такое
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, за счёт чего исключаются фрагменты кода, не использующиеся в текущем проекте.
Вышла обновленная версия фреймворка GWT (Google Web Toolit) с номером 2.3
Качать
тут
А так же обновился Google Plugin for Eclipse
(GPE)
Фреймворк позволяет создавать Web-приложение на Java с последующей компиляцией клиентской части в JavaScript.
Среди главных изменений в новой версии числятся:
Easy Discovery and Access to Google APIs
Import Projects from Project Hosting
One Login, Many Services
Local Storage APIs
См. видео по новым возможностям
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)
Удачи в разработке!
Вышла очередная версия GWT, которая расширяет возможности библиотеки. Версия 2.1 достаточно долго находилась в стадии разработки, поэтому ее вчерашнее появление, очевидно, никто не ждал. :-)
С кратким описанием новых возможностей можно ознакомится в документе
What's New in GWT 2.1, а ниже представлен его еще более краткий пересказ.
Чем медленнее загружается и работает web-приложение, тем меньше пользователей захотят им воспользоваться. Google понимает это как никто другой, поэтому в созданном ими Web Toolkit особое внимание уделено скорости работы получаемых с его помощью web-приложений.
Статья рассказывает о том, какие приемы клиентской оптимизации используются в GWT.