Оцінюємо технологію Adobe AIR

Рубрика: Веб / Веб

Олександр Майоров

Оцінюємо технологію Adobe AIR

З бурхливим розвитком технологій дедалі більше стирається грань між Інтернетом та системами користувачів. З'являється багато сервісів, які замінюють стандартні настільні програми. Йде бурхливе освоєння десктопу інтернет-додатками, і свідченням цього – нова технологія від Adobe.

Також з бурхливим розвитком Інтернету все більше користувачів підключаються до Глобальної мережі, і все більше з'являється всіляких веб-сервісів, що не поступаються за своєю функціональністю настільним додаткам, а іноді навіть перевершують їх за деякими параметрами. Достатньо навести як приклад Gmail і Google Documents.

Уявіть собі, що сервіс Gmail міг би працювати навіть в офлайновому режимі і міг би запускатися не тільки через браузер, але як самостійний настільний додаток. І вам не обов'язково було б постійно мати з'єднання з Інтернетом для роботи даного сервісу. Наприклад, ви знаходитесь у метро з ноутбуком. У вас, однак, відкритий Gmail, оформлений у вигляді нативної програми, і ви пишете лист. Натискаєте кнопку «Надіслати», і Gmail повідомляє вам, що лист поставлено в чергу на відправлення. Чудово, чи не так? Як це можливо, запитаєте ви? Якби ми писали таку програму, то загальна схема роботи мала бути такою:

  • перевірка з'єднання з Інтернетом;
  • якщо з'єднання встановлено – надсилаємо пошту;
  • якщо з'єднання не встановлено – зберігаємо пошту в локальній базі даних, наприклад SQLite. При наступному коннект з Інтернетом відправляємо пошту.

Це зразковий опис, але суть зрозуміла. Але мало того, що веб-додаток повиненсинхронізуватись з локальною системою. Хотілося б, щоб воно було написано один раз, але працювало на різних платформах, причому однаково добре. Більше того, потрібно, щоб програмою можна було скористатися на різних комп'ютерах, при цьому не було б необхідності синхронізувати дані. Все повинно зберігатися на сервері, а на локальний комп'ютер кешувалися тільки часто використовувані дані. Фантастика? Ну чому ж.

Засобами Java таке цілком реалізовано. Але ми сказали, що це веб-додаток, а значить він і написаний із застосуванням таких інструментів як DHTML, XML, JS, CSS і так далі. Виходить, що нам треба б писати окремо веб-версію і клієнтську версію програми, а це, у свою чергу, говорить про те, що треба застосувати безліч різних технологій, мов програмування та інструментів розробки. Все це накладає свої певні труднощі і змушує розробників освоювати багато інструментів розробки, витрачати на це більше сил і часу.

А що, як інструмент програмування для написання такого клієнтського настільного додатка ми б використовували ті самі інструменти що і для WEB? А сама програма виконувалася б у певному середовищі виконання на кшталт Java-додатків. І весь наш сервіс був би доступний як з браузерів (природно, з обмеженнями, що накладаються браузерами), так і у вигляді окремої самостійної програми, що працює незалежно від того, чи є в даний момент з'єднання з Інтернетом. Причому однаково незалежно від ОС, де цей додаток виконується зараз!

Повітряне рішення від Adobe

Компанія Adobe вирішила спробувати зробити міф реальністю і почала розробку проекту під кодовою назвою Apollo, який згодом був перейменований наAdobe AIR (Adobe Integrated Runtime). Ця технологія таки створена для веб-розробників, які хотіли б не просто створювати веб-сервіси, а й писати звичайні настільні програми для десктоп-систем. Раніше це означало б, що веб-розробник повинен перекваліфікуватися на системного програміста і освоїти мови програмування типу C/C++, Java, ObjectPascal або щось подібне. Але тепер з виходом нової платформи це не обов'язково. Adobe AIR дозволяє частково вирішити цю проблему.

Adobe Integrated Runtime – це не просто засіб для розробки багатофункціональних мультимедійних мережних RIA-додатків (Rich Internet Applications), а й середовище виконання для веб-сервісів на робочому столі. Особливістю таких програм є володіння привабливим інтерфейсом і, звичайно, можливість роботи як онлайн, так і оффлайн.

По суті AIR-додаток - це набір взаємопов'язаних файлів, що розповсюджуються у вигляді такого собі AIR-контейнера. Середовище виконання AIR забезпечує додатковий функціонал файлів, запакованих у AIR-архів. У звичайному браузері або Flash-плеєрі такого функціоналу, звісно, ​​немає.

Таким чином стає зрозумілою подвійна природа AIR. З одного боку, це програма запуску Flash-програм, яка може здатися лише ускладненою версією старого Flash-плеєра.

Поява такої технології є серйозним кроком до освоєння настільних систем інтернет-додатками. Якщо раніше веб-розробник міг працювати виключно в межах вікна браузера, при цьому доводилося (та й зараз доводиться досі) враховувати особливості різних версій, то тепер відкриваються великі перспективи: розробник може бути набагато ближче до звичайного користувача, створюючи нові продукти, більш тісно інтегровані ззвичним для користувача середовищем. І при цьому використовуються ті самі інструменти розробки та мови.

Серед основних переваг таких додатків компанія Adobe виділяє швидкість створення та впровадження, а також простоту та зручність використання. Інтерактивним додаткам будуть притаманні і деякі особливості традиційних настільних програм, зокрема, можливість роботи з локально файлами, що зберігаються, функції взаємодії з іншим ПЗ, встановленим на комп'ютер, та інше.

Усі основні можливості Adobe AIR за пунктами:

  • File I/O API (вбудований API для роботи з файловою системою користувача);
  • SQLite API (API для роботи з SQLIte з Adobe AIR-додатків);
  • Flash Player 9;
  • повнофункціональний HTML;
  • підтримка drag-and-drop;
  • підтримка буфера обміну;
  • асоціація із типами файлів;
  • іконки програми;
  • підтримка PDF.

Поряд з бетою, що вийшла, Adobe Flex 3 Adobe AIR є основою комплексної платформи компанії, що робить можливим для розробників створення RIA-додатків і їх доставку на пристрої під управлінням всіх основних ОС. На сьогоднішній день платформа підтримує три операційні системи: Windows, MacOS та Linux. Під час розробки AIR-додатків можна використовувати такі технології та бібліотеки:

У той час як для Windows і MacOS доступна вже третя бета, то для Linux доступна лише альфа-версія. Тому програми AIR для GNU/Linux поки що не можуть працювати в повному обсязі та використовувати весь заявлений розробниками функціонал. Більше того, Adobe AIR доступна не для всіх платформ GNU/Linux. Альфа-версія Linux AIR підтримує наступні ОС: Red Hat Desktop 4, RHEL 5, Novell Desktop 9, SUSE 10, Ubuntu 6.06. Потрібне робоче середовище GNOMEабо KDE, а також композитних менеджерів Beryl, Compiz, Compiz-fusion для підтримки ефектів прозорості. Не підтримуються повідомлення про оновлення, реєстрація типів файлів, запуск програм з браузера, клавіші, друк, автозапуск програм, відображення PDF і SWF всередині DHTML, стек протоколів IPv6. Немає можливості коректної роботи з кирилицею.

Безперечно, всі ці недоліки виправлять у найближчому майбутньому, і розрив між версіями для різних платформ скоротиться. А поки що найкраще пробувати технологію на ОС сімейства Windows або MacOS, хоча і під GNU/Linux варто подивитися (особисто я, м'яко кажучи, не був у захваті від 1-ї альфи, встановленої під OpenSUSE 10.3).

Перш ніж приступити до розробки, слід завантажити та встановити необхідний набір інструментів. Альфа-версію Adobe AIR для GNU/Linux можна завантажити за цим посиланням: http://labs.adobe.com/downloads/air_linux.html. Бета-версії для Windows та MacOS доступні на сторінці http://labs.adobe.com/downloads/air.html.

Крім самого середовища виконання для розробки додатків AIR вам необхідний AIR SDK. Він складається з наступних основних компонентів:

ADT – AIR Developer Tool – утиліта, що дозволяє створювати AIR-архіви (файли з розширенням Air) для поширення. По суті, це утиліта, що створює інсталятор вашого AIR-додатку.

ADL – AIR Debug Launcher, є ключовим компонентом AIR SDK. З його допомогою ви тестуєте AIR-додаток перед створенням фінального релізу.

Рисунок 1. Середовище розробки Aptana Studio

Після того, як ви встановите середовище Adobe AIR (див. мал. 2) і завантажуєте SDK, можна приступати до роботи. Із встановленням середовища проблем виникнути не повинно, оскільки навіть для GNU/Linux-систем середовище поширюється у вигляді бінарних пакетів. Що стосуєтьсяSDK, то це просто набір файлів та програм, які можна встановити куди завгодно. Допустимо, якщо це ОС Windows, то можете розпакувати архів прямо в корінь, в директорію C: AirSDK, так буде зручніше працювати. Тут ви самі вирішуєте, як вам краще зробити. Створіть директорію для ваших AIR-проектів, допустимо це C: AirProjects. Тепер майже все готове. До речі, хочу сказати, що я показуватиму, як писати програму без усіляких додаткових інструментів, таких як Aptana Studio. Справа в тому, що таким чином ви найкраще зможете зрозуміти архітектуру системи. А згодом, якщо ви серйозно займетеся розробкою на AIR, найкращим рішенням буде використовувати спеціалізовані інструментальні засоби. Просто та ж Aptana Studio при створенні програми за вас генерує стартовий код, як і всі студії взагалі-то, що не дуже підходить для першого знайомства і поняття суті та ідеології розробки.

Рисунок 2. Встановлення середовища Adobe AIR

Отже, почнемо. Не порушуватимемо традиції, почнемо з банального «Hello World», тому що нам треба зрозуміти суть створення додатків на AIR. Створюємо в нашій директорії проектів нову папку, назвемо її HiPeople (набридло писати «хелловорлд»). У директорії вашого проекту структуру ви задаєте самі, як вважаєте за потрібне. Якщо це простий додаток, то можна все скинути в купу. Якщо ви робите складну програму, то краще розділяти файли. Мінімальний розділ можна зробити таким чином: створити для кожного типу файлів свої директорії. Наприклад, для нашого проекту в директорії C: AirProjects HiPeople створюємо наступну ієрархію: