Adobe AIR 1.0 正式リリース ── Webとデスクトップとプラットフォームの真なる融合

ADOBE AIR

一昨年より Adobe Labs にてベータテストを重ねてきた Adobe AIR が、ついにAdobe AIR 1.0 として正式リリースを迎えました。もータリリースの段階で世界中のクリエイターが開発に着手していただき、すでに数多くのAIRアプリケーションが登場しています。Adobe Developer Connectionに新設された「AIR Gallery」でAIRアプリケーションが紹介されていますので、ぜひチェックしてみてください。今月のEdgeでは、Adobe AIRの正式リリースを祝いつつ、改めて技術的なおさらいをしていきましょう。AIR について既に熟知されているという方は、今月のEdgeでも掲載しているAIR サンプルやAIR Gallery をご覧いただき、自身の AiIR プリケーション作成にお役立てください。

Web アプリケーションの現在とアドビの取り組み

Web 上で動作するアプリケーション開発は日に日に盛り上がりを見せ、実に多種多様なサービスが生まれています。特に最近では、Ajaxをはじめとした Web ページのリッチ化が進んだことで、比較的少ない労力でデスクトップアプリケーションと同様のユーザ体験をWeb上で実現できるようになりました。これらのほとんどがオープンな技術を核にした開発手法で作成され、積極的にAPIを公開することで、外部開発者との協力によってサービスを拡大することに成功しています。アドビもまた Adobe Reader や Flash Player のような無償クライアントの標準化、Mozilla 財団へのTamarin VM の寄贈、Flex SDKや Blaze DSのオープンソース化など、オープンな技術革新への積極的な貢献を行ってきました。

AIRで実現する「脱ブラウザ化」と「真のマルチプラットフォーム」

RIA (リッチインターネットアプリケーション)としてインターネット上で動作するアプリケーション開発を試みた場合、あくまでも Web ブラウザ上での動作を想定したものにならざるを得ません。「オフラインでも動作させたい」「メニューをカスタマイズしたい」「ブラウザの種類やバージョンによって動作が異なるのは避けたい」「ドラッグ&ドロップやコピー&ペーストなどでアプリケーション間の連携を行いたい」といったことはブラウザ上で動作させる以上諦めざるを得ないものでした。

Adobe AIR はそうした「諦め」を根本から解決するプラットフォームとして登場しました。Adobe AIR には OS の違いにかかわらず、HTML/JavaScript エンジン「WebKit」が統一環境として内蔵されているため、OS やブラウザによる動作の違いを意識せず、これまで培ったHTMLやJavaScript、Ajax の知識を活かしたアプリケーション作成を行うことができるのです。

AIRのクロスプラットフォーム
Windows と Mac で、まったく同じ見た目、操作方法を実現できる Adobe AIR。
将来のバージョンでは Linux や携帯デバイスなどへの展開も予定されている

もしあなたが Ajax の開発者であるならば…

Ajax アプリケーションにつきものの セキュリティサンドボックスからも解放され、さらにはその技術をデスクトップアプリケーションの領域に拡げることを可能にしてくれます。AIR は自身の開発者人生の新しい挑戦への幕開けとなる技術となるでしょう。ぜひAIRアプリケーションの作成に挑戦してみてください。

もしあなたが Flash の開発者であるならば…

兎にも角にも AIR アプリケーション作成の簡単さに驚くことでしょう。無償で配布されているアップデータをインストールし、いくつかの簡単な書き出し設定を行うだけで、Flash ムービーはそのままデスクトップで実行されるアプリケーションになります。さらに AIR 用に拡張された ActionScript 3.0 のコードを数行追加することで、Flash ムービーの中で HTML や PDF の表示も簡単にできるようになります。作り慣れた Flash ムービーが、AIR を通すことでたちまちデスクトップアプリケーションに展開できる。そんな可能性の広がりをぜひ実感していただきたいです。

もしあなたがプログラム開発の経験者であるならば…

すでに Java などでアプリケーション開発を行っている方は、Flex Builder にぜひ注目してください。普段から使い慣れた Eclipse をベースにした統合開発環境であり、MXML という HTML に似た簡単なコードで多様な機能を実現するコードベースの開発手法、コンポーネントのドラッグ&ドロップとパネルへのプロパティ設定といった VB ライクな画面設計を可能にしています。高度なデバッグ機能やアプリケーションパフォーマンスプロファイラなど、よりプログラム開発に熟知した方なら満足度の高い開発環境です。最新版の Flex Builder 3 も登場しましたので、AIR ともども挑戦してみてください。

Adobe AIR アプリケーションの開発手段はこのように多数用意されていますが、どのようなアプローチでも同じランタイム環境上で動作させることができるのが Adobe AIR の大きな特長です。そしてランタイム環境がインストールされていれば、Windows でも Mac でも、さらに今後は Linux や PDA、携帯電話のようなモバイル環境でも、完全に同じように動作するアプリケーションの作成が行えるのです。このマルチプラットフォームのアプリケーションを、普段使い慣れた開発環境と Web 標準技術で産み出すことができる素晴らしさをぜひ体験してみてください。

ここで他のデスクトップ RIA ランタイム技術の比較として表にまとめてみました。Adobe AIR がいかに革新的で、それでいて技術的な習得が容易なことがご理解いただけるのではないでしょうか。

ランタイム環境の比較
他のデスクトップランタイム環境との比較

Adobe AIR でできること

それでは、AIR にはどんな機能があるのか、ここでいくつか代表的なものを紹介したいと思います。

オリジナル ウィンドウ と カスタムメニュー

アプリケーション開発において複数のウィンドウ処理やオリジナルのメニュー項目を作成したい場合は多いでしょう。Adobe AIR には ActionScript によるウィンドウ処理だけでなく、JavaScript による DOM ベースのウィンドウ処理も行えるようになっています。また、ウィンドウを画面全体に表示する「フルスクリーンウィンドウモード」や、「スクリーン」機能によって画面上のウィンドウサイズを超えた「バーチャルデスクトップ」としてのウィンドウ処理もできるようになっています。

screen によるバーチャルデスクトップ
「スクリーン」を使った バーチャルデスクトップ

メニューは、アプリケーションウィンドウに表示される「ファイル」「編集」のようなアプリケーションメニューはもちろん、右クリックした際に表示される「コンテキストメニュー」や、何かのイベントによって画面上に呼び出されるメッセージダイアログのような「ポップアップメニュー」を作成可能です。

ファイルやデータのやりとり
Scrappy AIR の ドラッグ&ドロップサンプル、Scrappy

アプリケーション化することの大きな利点は、OS のファイルシステムへの自由にアクセスできることです。Flash や Ajax のような馴染みの開発手法の延長線上で、ファイルやディレクトリのコピー、移動、削除、ゴミ箱へ入れる、テンポラリファイルやフォルダの作成などが自由に行えることは、ちょっとした感動すら憶えることでしょう。作成したアプリケーションとデスクトップとの間でのドラッグ&ドロップ、コピー&ペースト、さらにはファイルを暗号化する機能もあります。また、コンピュータ上にある様々なデータをバイナリレベルで読み書きする Byte Array クラスがあらかじめ用意されているため、AIR から特定のファイルフォーマットのデータを自由に取り扱うことが可能です。

その他、Adobe AIR にはデータベースシステムである SQLite が内蔵されています。PHP や Mac OS X にも採用されている軽量で取り扱いの簡単なこのデータベースシステムもまた、オープンソースで業界標準の地位を獲得しつつあります。Adobe AIR からのデータアクセスは一般的な SQL 文を ActionScript の中に記述します。膨大な数のデータも難なく処理するこのパワフルなデータベースシステムをもってすれば、Adobe AIR 上で様々なデータ処理を実現できるのです。

コンテンツの表示

Adobe AIR の「WebKit」は、自身で作った AIR アプリケーションの表示処理はもちろん、ネットワーク上にある Web コンテンツを表示する事もできます。HTML や JavaScript の実行だけでなく、FlashPlayer の再生や PDF の表示もサポートされています。また、表示された HTML ページの JavaScript や特定のタグに対して DOM 経由でアクセスを行う事ができるため、AIR アプリケーションと外部コンテンツとの連携を行う事もできます。

WebKit + Flash + Adobe Reader

その他、Flash Media Rights Management Server(FMRMS) との連携による DRM で保護されたコンテンツの再生も可能です。AIR アプリケーションから直接 FMRMS に対して FLV コンテンツの DRM 情報を参照し、許可されている場合にのみ再生を行うというようなアプリケーションの作成を行う事ができます。

オペレーティングシステムとの連携

AIR アプリケーションも通常のデスクトップアプリケーションと同様、OS レベルでのイベントが OS に対して発行されています。AIR アプリケーションからはこの OS に対して発行されている情報をアプリケーションログとして参照する機能があります。また、特定のファイル形式でデータのやりとりを行いたい場合や、そのファイル形式にアプリケーションの関連付けを行いたい場合もあるでしょう。この関連付け情報を参照したり変更したりすることが AIR アプリケーションからも可能です。

その他、ログイン時に自動起動、アプリケーションのアイドル時間を管理して入力が何も行われなかった際に特定の処理を実行、アプリケーションを強制終了、何かイベントが発生するとタスクバーを点滅させたりドック上のアイコンをジャンプさせてユーザにアテンションを喚起させるといった処理も可能です。

ネットワーク

ネットワークへの接続が必要なアプリケーションにおいては、ネットワークに繋がっているかどうかを監視する必要が出てきます。AIR アプリケーションにはサービスモニタというAPIがあり、必要に応じてネットワーク接続を監視することができます。これにより、例えばネットワークを Ethernet からワイヤレスに切り替えた場合などで、特定のポートやサービスが利用可能かを監視することができます。

そしてもちろん、AIRアプリケーションからOSで設定されているブラウザやメールソフトを起動させることも可能です。

最後に AIR の具体的なアプリケーション構造をまとめてみました。OS の土台の上に メディアとのやりとりを行う API群が並び、Flash とHTMLの描画エンジンが並列して存在している形になります。

AIRアーキテクチャ概念図
AIR アーキテクチャ概念図

Adobe AIRギャラリー

さて、それでは実際にどのようなAIRアプリケーションが登場してきているのでしょうか。Adobe Developer Connectionでは選りすぐりのAIRアプリケーションをご紹介しています。ぜひ頻繁に目を通していただいて、自身のアプリケーション作成の参考にしてください。

Adobe AIRギャラリー

「あなたのAdobe AIRアプリケーションをご紹介ください」

Adobe AIRギャラリーでは、皆さんからAdobe AIRを利用したアプリケーションを随時募集しております。お送りいただいた情報は、当ギャラリー内で展示させていただくと共に、Adobe Developer Connectionでご紹介するのをはじめ、Edge NewsletterのメールニュースやWebページ、外部Webサイト、セミナーなどを通じて、多くの方にナレッジとして共有されます。あなたのビジネスにも大きく貢献しますので、この機会にぜひご投稿ください。