Разбираемся с Adobe AIR 2
запись опубликована 24 March 2010 примерно в 13:15Share in Twitter Share in Facebook 
Сегодня в очередном техномиксе по веб-технологиям я расскажу про интересную и, на мой взгляд, перспективную технологию Adobe AIR. Кто не знаком, AIR или Adobe Integrated Runtime это такая себе мультиплатформенная среда запуска приложений, доступная в настоящих момент для windows, macos и даже linux. Сделана она, как и все гениальное, просто: сама "виртуальная машина" представляет собой что-то типа sandbox-а, webkit-based браузера с дополнительными API, который может запускать внутри себя приложения, написанные на html + javascript либо же flash (adobe flex, если быть точнее). Второе я считаю уже умирающей, ненужной технологией (а в следующих парочке техномиксов будет более интересный и перспективный silverlight с сишарпами, WPF и XAML), поэтому тестовое приложение я писал на JS. Идею придумывать долго не пришлось, просто решил написать десктопную версию Show Forecast плагина для Google Chrome. На портирование ушло чуть больше часа, настолько все удобно.

Начнем с описания технологии и процесса. Для разработки вам нужен Adobe AIR SDK, советую сразу смотреть на версию 2.0, хоть она пока еще и в бетках, но содержит много свежего и нового. В принципе, это все, открывайте мануалы, давите прыщи и пишите монохромный код, ну а мы будем использовать Aptana IDE, где с помощью wizard-а можно за 10 секунд создать новое AIR приложение, а с помощью дебаггера и профайлера - соответственно дебажить и профилировать его же. Для разработчика доступен хороший API со средней документацией. API очень жирный и предоставляет интерфейсы для работы с файловой системой, сокетами, SQLite DB, мультимедиа девайсами и т.п. Притом, как из flash, так и из JS. Все это после инклюдинга AIRAliases.js вызывается из неймспейса с помощью with (air){}. Практически все API асинхронны и работают на event-based модели, но, в отличии от родного вебкитовского SQLite движка, в AIR при инициализации подключения можно задать тип с помощью openAsync либо просто open для последовательного выполнения запросов. В принципе, функциональности AIR хватит для создания клиента для любого серверного ПО, которое отдает данные по tcp\udp, а еще лучше - имеет какой-то http API. Не зря "из воздуха" возникли неплохие твиттер клиенты, джабер чатики и прочая мелкая мишура. Кстати, огромным плюсом является поддержка практически всех современных javascript фреймворков, мой любимый и ненаглядный jquery работал на ура. На глаз, работает все в AIR 2 на уровне Google Chrome Dev, а местами (да-да, SQLite, например) даже быстрее.

Подводя итоги, плюсы: одно приложение будет работать на всех платформах, использование распространенных языков разработки, поддержка современных технологий (html5, css3 + webkit transforms and effects), встроенный установщик, менеджер приложений и updater с возможностью замены их своими. Ну и без минусов никуда: это все же html и js со всеми вытекающими, игры и виртуальные миры с шейдерами-шмейдерами на этом не напишешь, в ОС пользователя должен быть установлен AIR, незащищенность исходников: распаковывай и смотри, как это все работает. Можно еще придраться к упрощенной работе с файловой системой, столлман плюется на проприетарность технологии и отсутсвие нормального дебагера. Aptana еще очень далек от оригинала, я уже молчу про trace метод самого AIR. Но это все наживное.

В общем, результат вы можете посмотреть в виде скрншотов (main, settings), скачать в виде air файла либо же exe инсталлера. Все это, как обычно, opensource. Кому интересно - качайте air файл, меняйте расширение на zip, распаковывайте и смотрите. Приложение, в отличии от плагина, just for fun, поэтому никаких багрепортов и туду. Работает и хрен с ним.
запостили в Интернет, Арбайт | постоянная ссылка