Вышел GWT 2.5.0.RC1

Пару дней назад вышла очередная и долгожданная версия фреймворка для разработки веб-приложений — GWT в версии 2.5.0.RC1. Давайте посмотрим, что же нового мы увидим в релизе 2.5.

1) Super Dev Mode — экспериментальная замена привычному Development Mode. Как и его предшественник, Super Dev Mode позволяет GWT разработчикам быстро перекомпилировать код и видеть результат в браузере. Также он позволяет пользоваться дебагером. Однако работает он иначе. Если не вдаваться в подробности, о которых вы можете почитать тут, то отличия от старого доброго Dev Mode следующие:
  • Не требуется плагин для браузера. Поддерживать разные браузеры станет проще, в том числе и на мобильных устройствах.
  • Не делается автоматическая перекомпиляция после каждой перезагрузки страницы, что упрощает дебаг многостраничных приложений.
  • Super Dev Mode не будет страдать от ошибок в плагинах различных браузеров.
  • Разработчики могут производить дебаг Java, JavaScript, и возможно других языков стороны клиента в одной и той же дебаг-сессии. Это особенно полезно, когда GWT код вызывает напрямую JavaScript.
  • Браузерные дебагеры имеют продвинутые фичи, такие как DOM breakpoints.

Есть конечно и недостатки. Из основных следует отметить то, что работа над Super Dev Mode еще не закончена, а также он пока тестируется только в Chrome и Firefox.
2) Elemental — новая экспериментальная библиотека для быстрого легковесного и «to the metal» веб программирования в GWT.
Elemental поддерживает все фичи HTML5, включая доступ к DOM конечно, но также и WebGL, WebAudio, WebSockets, WebRTC, Web Intents, Shadow DOM, File API и другие. Elemental также включает высокопроизводительные коллекции и новую JSON библиотеку, которые одновременно хорошо работают как в браузере, так и на сервере.
3) Новые оптимизации компилятора. GWT компилятор может по желанию использовать Closure compiler для обеспечения дополнительной JavaScript оптимизации. Поскольку эти оптимизации замедляют компиляцию, для их включения нужно воспользоваться специальным флагом компилятора -XenableClosureCompiler.
4) Обновленная поддержка ARIA. Добавлена новая ARIA библиотека, которая полностью охватывает W3C ARIA стандарт. Она облагчает правильное назначение ARIA ролей, состояний и свойств DOM элементов.
5) Улучшенный UiBinder. В GWT 2.5 добавлено расширения для UiBinder, которое поддерживает рендеринг ячеек и управление событиями. В частности, это позволяет UiBinder генерировать реализацию UiRenderer для помощи в рендеринге SafeHtml и диспетчеризации событий для методов отмеченных @UiHandler тегом.
Также введены IsRenderable/RenderablePanel типы. Когда используются вместо HTMLPanel, они могут значительно уменьшить время рендеринга и снизить отклик сложных UiBinder интерфейсов.

Это лишь краткий обзор основных фич. С более полным описанием новых фич и починенных багов можно ознакомиться в Release Notes.
Загрузить GWT 2.5.0.RC1 можно здесь.
А также появился GWT плагин для Eclipse 4.2 Juno, который можно загрузить обычным для плагинов способом. Адрес репозитория: dl.google.com/eclipse/plugin/4.2

Похожие публикации

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 6

    0
    Спасибо за новость. Давно ждал обновления именно из-за Super Dev режима. В текущем виде отладка более менее тяжелого GWT приложения стоит кучу времени и нервов из-за неторопливости и неповоротливости Dev режима.

    Интересно, запустится ли новый режим при отладке на external сервере.
      0
      Я вижу, Comet так и не прикрутили :(

      Основной бич GWT — это сериализация POJO-структур. Сделана она отвратительна, а точнее не сделана вообще. GWT-RPC в счет не берем, поскольку он предлагает сугубо внутреннюю имплементацию служащую лишь для вызовов. Поэтому ни клонировать, ни «послать-как-строку» при помощи него нельзя. И что странно, до сих пор практически нет нормальных библиотек, делающих простой маршаллинг/демаршаллинг объектов GWT.

      Всем, кому знакома проблема, рекомендую фреймворк JBoss Errai.
        0
        А RequestFactory чем не подходит?
        На Errai сейчас как раз собираюсь посмотреть. Судя по всему плюшек там побольше. Взять хотя бы встроенный Comet.
          0
          RequestFactory служит для т.н. connected-структур — расшареного графа объектов между сервером и клиентом. Это немного не то. Мне нужна была простая сериализация объектов в строку и обратно, причем работающая одинаково как на клиенте, так и на сервере. Со строкой уже можно много что делать: гонять ее туда-сюда по comet-у или вебсокету, засовывать как параметр в GET или POST, использовать ее в нативном JavaScript, сохранять в cookie или persistence storage, и даже передавать между окнами.

          Вчера я, наконец, решил эту проблему. Ничего не оставалось как сесть, и написать свою библиотеку. Сегодня только залил. Вот, может кому и пригодится: code.google.com/p/gwt-streamer/
            0
            А AutoBean тоже был не в тему? Он справляется с описанными вами задачами
              0
              AutoBean не работает с полями, а вместо этого делает враперы. У меня достаточно большая модель, и постоянно растет. Прописывать каждый класс в Factory накладно. К тому же он не решает проблему с десериализацией объектов.
              AutoBean<Person> bean = AutoBeanCodex.decode(factory, Person.class, json);
              Чтобы десериализовать объект я должен сначала распознать его класс. А для этого нужно его предварительно записать в какую-нибудь хеш-таблицу: Class.forName( «Person» ) в GWT не работает.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое