Pull to refresh

Что же нового ожидает нас в AIR 2.0

IT-companies
imageAdobe MAX 2009 — самая большая конференция, где Adobe представила множество интересных проектов и заявила о выходе в следующем году линейки CS 5 своих продуктов (а там много интересного уже сейчас, например, Flash CS 5 обещают доступную бету уже к концу года). Но для веб-разработчиков наиболее ожидаемым является достаточно небольшой проект (по сравнению с другими) — Adobe AIR 2.0. Текущая версия 1.5.х обладает мощной поддержкой индустрии и разработчиков, в том числе и потому, что использует всем привычные технологии для разработки — JavaScript/HTML и Flash. Приложения для AIR выпускают многие компании, в том числе гиганты индустрии вроде eBay, NASDAQ, FedEx, медиагигант Fox и другие, сама Adobe создала несколько мультимедийных проектов для распространения своей платформы.

Но на горизонте уже есть новости о следующем поколении AIR, которое должно не просто еще больше укрепить позиции в сфере платформ для веб-приложений, но даже, без преувеличения, просто отстранить все остальные конкурирующие платформы. Что же нового ожидает нас в AIR 2.0?

Я уже неоднократно заявлял, что AIR это пока лучшая платформа для RAI-приложений, при этом без каких-либо отклонений от слова «приложений». Для AIR выпускают проекты многие компании, в том числе гиганты индустрии вроде eBay, NASDAQ, FedEx, медиагигант Fox и другие, сама Adobe создала несколько мультимедийных проектов для распространения своей платформы.

В этом своем обзоре я описывал несколько конкурирующих продуктов-платформ для RIA, но даже наиболее мощный Appcelerator Titanium все равно не может похвастаться всеми фишками AIR 2, хотя, без сомнения, первый и реальный кандидат на соперничество, особенно в 0.7 версии, где уже появилась поддержка РНР в качестве скриптового языка.

А теперь о главном…

image


  • Возможность запуска внешних приложений — да, теперь можно будет инициировать открытие приложений из AIR, например, если вы работаете с документами Word или Excel, то сможете предоставить пользователю возможность напрямую из приложения открыть файл в его родной программе, ранее это было доступно только для PDF-файлов (как я понимаю, только потому, что Flash научился рендерить PDF).
    • Если подробнее, то за этот функционал отвечают новые классы: flash.desktop.NativeProcess, позволяющий работать с командным интерфейсом, перехватывать и обрабатывать стандартные потоки ввода/вывода и ошибки, flash.desktop.NativeProcessStartupInfo для получения информации о процессах, flash.events.NativeProcessExitEvent — обработка события завершения потока. Важное замечание — этот функционал доступен только для приложений в виде нативных инсталляторов, для пакетов air, которые можно установить из веб-страницы, они недоступны (видимо по соображениях безопасности).
    • За возможность открывать файлы в родных приложениях отвечает метод openWithDefaultApplication, через который можно открыть файл в ассоциированном приложении, или запустить его, если это приложение (исполняемый файл).

  • Родные инсталляционные пакеты для приложения. Если раньше ваша программа паковалась в независимый от платформы формат *.air (очень схожий с jar), то теперь можно создавать нативные приложения для каждой платформы (вопрос остается открытым — будет ли возможность создать независимый дистрибутив, когда в пакет включена и сама среда AIR). Конечно, вариант с air-пакетом также останется. В этом плане Adobe в роли догоняющего, потому что тот же Titanium изначально обладал этими возможностями (там вся среда исполнения идет сразу с программой и индивидуальна для каждого приложения, в отличии от разделяемой в AIR-е).
  • Расширенные возможности работы с файлами и интеграция с десктопом — FilePromise, URLFilePromise, что позволит работать с файлами и переносить их между приложением и ОС (по сути, возможность указать URL или файл как доверенный и обработать в приложении, потом передав ОС).
  • Расширенная работа с сокетами. Это, пожалуй, самое важное и ожидаемое нововведение — создание серверных сокетов, чего ранее не умел делать Flash, зато сможет AIR (в том же Titanium это давно есть и, по моему, часто самый существенный плюс этой платформы). Для этого предназначен класс flash.net.ServerSocket.
  • Поддержка IPv6. Пока не сильно актуально, однако если ваше приложение должно работать внутри собственной сети или интранет, то может пригодится.
  • Поддержка UDP-протокола — теперь есть поддержка, кроме TCP, еще и UDP протокола, что позволит работать максимально быстро с сервисами, для которых важны минимальные задержки, остальным можно пренебречь, однако пока неизвестно, будет ли UDP поддерживаться в серверных сокетах. За UDP-сокеты отвечает класс flash.net.DatagramSocket.
  • Информация о сети. Приложение, используя класс flash.net.NetworkInfo сможет получить гораздо больше информации о сетевом окружении. Пока правда, информация ограничивается списком доступных сетевых интерфейсов и данными о IP-адресе
  • Работа с DNS-записями и серверами. Приложение сможет получать всю информацию о произвольном домене и напрямую общаться с DNS-сервером. Видимо, стоит ожидать специальных приложений для SEO, а также платформ для киберсвоттеров.
  • Приложения теперь будут обеспечены поддержкой специальных экранов и/или программ для людей с ограниченными способностями (Screen Reader). Пока этот функционал доступен только в Windows и включает в себя работу с диалоговыми окнами, а также специальные классы для Flex-компонентов.
  • Прямой доступ к микрофону и аудио-потоку. Эту возможность ожидали очень многие! Теперь записывать звук с микрофона можно без обязательного участия удаленного сервера, получая доступ к сырым данным потока в виде PCM ByteArray. Данные можно сохранять в wav-файл и проигрывать из приложения. В принципе, возможно и прямое кодирование в другой формат.
  • Встроенная СУБД получает расширенную поддержку транзакций и точек сохранения. Для этого вводятся новые функции savepoints(), setSavepoint(), releaseSavepoint() и rollbackToSavepoint().
  • Расширенные возможности по работе с системами вывода на печать. Теперь можно индивидуально указывать режим печати для каждого элемента (или страницы), в частности, задавать режим вывода (векторный или растровый), если это поддерживается ОС и драйвером. Более подробно о подсистеме печати в ActionScript 3 здесь.
  • Поддержка Idle timeout — насколько я понял, можно детектировать режим работы пользователя и определять, работает ли он сейчас с приложением или нет, например, для перевода в фоновый режим.
  • Максимальный размер окна приложения теперь расширен до 4095x4095 пикселей, что позволяет запускать AIR-приложения на больших экранах и использовать всю доступную площадь. Также добавлена поддержка сенсорных экранов и multi-touch.
  • Работа с системами хранения — приложение через новые классы flash.filesystem.StorageVolume и flash.filesystem.StorageVolumeInfo может получать полную информацию о всех системах хранения, дисках, логических разделах, определять возможности записи в разделы, детектировать съемные диски и флешки.
  • Новые возможности для глобального перехвата ошибок, по сути try/catch блок для всего приложения вместе.
  • Профайлинг и отладчик для JavaScript-кода.
  • Профили для приложения — можно избирательно создавать профили для различных вариантов использования приложения, включая или отключая те или иные возможности. Сейчас доступны следующие профили: desktop для обычных приложений, NativeDesktop для приложений с нативным инсталлятором, mobile и extenden mobile для мобильных приложений.
  • Поддержка мобильных приложений. Да, да, ДА! Можно создавать мобильные приложения, в том числе и для iPhone — и это будут родные приложения для платформы от Apple (пока есть сложности с Flash на iPhone, Adobe просто генерирует нативный код для iPhone).
  • Обновленный движок рендеринга Webkit (такой же, как в Safari 4 beta), теперь позволяет:
    • использовать самый быстрый движок JavaScript — SquirrelFish Extreme (со множеством оптимизаций, включая полиморфное кеширование и облегченный JIT компилятор)
    • CSS трансформации (CSS Transformations)
    • CSS Transitions
    • CSS анимация (CSS Animations)
    • градиенты (CSS Gradients)
    • Быстрый Selector API для доступа к DOM-узлам (Webkit CSS selectors)

  • В Flash/Flex частях приложения теперь можно свободно создавать и рендерить через встроенный Webkit документы HTML, JS и даже PDF, работая со структурой документа точно так же, как с объектами AS.

Вот, пожалуй и все. По-моему, изменения отличные и позволят существенно расширить сферу применения AIR и спектр приложений. Из того, что актуально именно для меня, так это, конечно же, работа с сетью (серверные сокеты, UDP-протокол), возможность создавать нативные приложения с инсталлятором, улучшения в движке Webkit и особенно в JavaScript движке. Остается только пожелать чего-то серьезного о работе с 3D-графикой, например, WebGL и лучшей поддержки акселерации. Также я еще не уверен на счет возможностей по работе с SSL и вообще криптографией. Также хотелось бы больше встроенных библиотек, которые были бы доступны не только в Flash, но и в JavaScript API. А так — просто отлично! Ждем!


P.S. Ссылка на запись выступление, посвященное AIR 2.0.

Tags:
Hubs:
Total votes 59: ↑54 and ↓5 +49
Views 427
Comments 22
Comments Comments 22