Pull to refresh

Расширения ExtJS для платформы Adobe AIR

Reading time 4 min
Views 1.2K
Как и обещал, продолжаем знакомить с новинками фреймворка ExtJS. На этот раз команда разработчиков сообщает, что в сотрудничестве с Adobe они развивают библиотеке в сторону совместимости с платформой AIR. И эта новость самая приятная, ведь именно для запуска серьезных AJAX приложений эта среда подходит наилучшим образом, а ExtJS позволяет создавать профессиональные интерфейсы, почти неотличимые от обычных десктопных, однако используя только средства HTML/CSS/JavaScript.

Не так давно Adobe выпустила следующее значительное обновление AIR-а за версией 1.5 и эта тема заслуживает отдельного разговора, а сейчас обсудим нововведения в ExtJS ( оригинальный пост в блоге разработчиков).

Уже с версии, если не ошибаюсь, 2.0 в стандартном дистрибутиве появился набор компонентов для доступа и работы с специфическими для платформы AIR свойствами — найти в документации вы их можете в разделе Ext.air. Однако там представлены только базовые функции, которые ориентированы на предыдущие версии платформы.

Первым примером расширенной поддержки новой платформы стал музыкальный MP3 плеер (исходный код), который демонстрирует расширение компонента Ext.air.Sound и предназначен для проигрывания длинных композиций, например, музыки, подкастов и т.п. Как я понимаю, одновременно может быть воспроизведен только один файл, то есть класс синглтон и не позволит параллельно исполнять звук из разных источников. Компонент позволяет производить все основные операции — остановка, пауза, регулирование громкости, предлагая стильный интерфейс, оформленный в традиционном для библиотеки стиле (конечно, его можно менять).

Лично меня очень порадовал второй компонент — Ext.air.Notify, который реализует панель уведомления, если приложение работает свернутым в трей. Это действительно нужный компонент, так как для многих приложений именно такой режим является основным, как ни странно — а ранее приходилось вручную проверять, обновилась ли информация.



Теперь разработчик может гибко настраивать и управлять оповещениями, в частности, поддерживается форматирование сообщений при помощи системы шаблонов (обычной для ExtJS, если вы работаете с библиотекой, наверняка уже применяли). Мне этот класс очень понравился и уже в следующем проекте я буду его активно применять, а о практическом опыте обязательно расскажу.

Общие настройки приложения ранее были доступны только из конфигурационного файла или на стадии разработки, теперь у нас будет класс Ext.air.App, которым можно будет управлять программным образом в любой момент, в частности, задавать расположение окон, устанавливать опции «поверх всех окон» или переводить приложение в полно экранный режим. Заметим, что управление доступно только после старта приложения и получения объекта активного окна.

Доступна и работа с буфером обмена — класс Ext.air.Clipboard позволяет использовать эту возможность для обмена информацией с другими программами или даже внутри приложений, ведь если вы, к примеру, создаете админ-панель системы управления сайтом, то такая функция будет очень востребована в редакторе статей. В дальнейшем разработчики обещают расширить функциональность и внедрить поддержку Drag&Drop.

Для случаев, когда вам необходима поддержка видео в приложении, будь то просто проигрывание роликов или же работа с видеокамерой, вам пригодится расширение стандартного компонента Panel — Ext.air.VideoPanel, которое умеет воспроизводить видеопоток из флеша или веб-камеры, вплоть до полноэкранного высокого разрешения!

Разработчики не забыли и о новых функциях в 1.5, однако обещают добавить их поддержку в следующем релизе библиотеки, вместе с описанными выше компонентами. Однако по отдельности, примеры, описанные в статье, доступны уже сейчас для экспериментов и исследования.

Честно говоря, меня очень радует то, что библиотека позиционирует себя как основу для приложений среды AIR ведь, если подумать, это идеальное место для нее. Браузеры достаточно плохо «переваривают» страницы, где применяются такие достаточно тяжелые библиотеки, хотя в этом уже наблюдается прогресс. Буквально накануне тестировал пред-релизную версию нашего проекта, основанного полностью на ExtJS (могу сказать только, что это браузерная он-лайн игра) — и самые лучшие результаты по быстродействию интерфейса оказались в еще не вышедшем Firefox 3.1 (с включенным TraceMonkey движком), а вот в IE разных версий или даже в предыдущих релизах Firefox работа хоть и возможна, но иногда притормаживает. Возможно это связано и с нагрузкой на сеть (хотя я сокращал запросы, но все равно у нас есть несколько таймеров и каждые 5 секунд идёт опрос сервера) или с включенным Firebug (хотя нет, он везде включён), не знаю, но результат реальный — ExtJS показывает себя в полную силу именно на самых современных платформах, специально приспособленных для исполнения AJAX-приложений, которые могут работать часами и сутками без перезагрузки страницы, активно применяют динамическую загрузку и исполнение JavaScript кода и другие возможности. А ведь в AIR 1.5 одной из ключевых особенностей названо именно обновление движка рендеринга Webkit и включенный новый движок для обработки JavaScript, известный как Squirrelfish (в официальном блоге Adobe было упомянуто, что быстродействие приложений может возрасти, вплоть до 35%, что, однако, ещё надо проверить).

На этом пока все. А, нет, один из конкурентов Ext-а, Dojo Toolkit (под конкурентом я, в данном случае понимаю Dojo Core + Dijit), также нацелился на платформу AIR и анонсировал отдельный подпроект, Dojo Extensions for Adobe AIR, призванный помощь разработчикам применять весь потенциал платформы в приложениях с использованием Dojo Toolkit. Проект также интересен, в следующий раз мы его рассмотрим подробнее, а также попробуем сравнить поддержку AIR-а в обоих библиотеках. Но смею заметить, поддержка AIR уже давно есть в ExtJS, сейчас анонсировано только ее расширение, тогда как в Dojo пока не было замечено аналогичных компонент до анонса этого проекта.

P.S. (мечтательно) А вот если объединить возможности Dojo/Dojox да интерфейс ExtJS, да запустить это на платформе AIR, вот это будет уже реальное смертельное оружие...
Tags:
Hubs:
+6
Comments 8
Comments Comments 8

Articles