2010年6月9日にAdobe AIR 2がリリースされました。約2年半振りのメジャーバージョンアップとなり、多くの新機能追加と機能強化が行われています。
本稿では「Adobe AIR 2をはじめよう」と題し、あらためてAdobe AIRと新機能の概要を説明するとともに、「開発環境の構築→アプリ作成の手順→配布」とAIRアプリケーションを作成する際の一連の流れについて解説します。
本稿は、Adobe Developer Connectionで連載中の「Adobe AIR 2 マスターシリーズ」の第1回目にあたります。「Adobe AIR 2 マスターシリーズ」では全10回予定で、Adobe AIR 2の機能の詳細や、サンプルアプリを用いながらその使い方を解説しています。続きはAdobe Developer Connectionでお楽しみください。
Adobe AIRとは
AIRとは「Adobe Integrated Runtime」の略で、日本語にすれば「アドビ統合実行環境」となります。Adobe AIRは、ブラウザ内での動作に限定されていたSWFファイルをデスクトップ環境でも動作させる際に必要となる様々な機能を提供し、クロスプラットフォーム化を実現するための実行環境です。
Adobe AIRの最大の利点の1つは、作成したAIRアプリケーションが、Adobe AIRがサポートするOSであれば、どのOSであっても同じように動作するという点です。例えば、「ウィンドウを開く」という1つの操作にしても、ネイティブアプリケーションを開発する場合は、WindowsとMac OSでは必要な手順や作法が異なります。しかし、AIRアプリケーションの場合は、同一のAPIを通じてOSネイティブなウィンドウ操作を実現することができます。
また、Adobe AIRを通じて、SWF単体では不可能なことを実行することができます。以下は、代表的な例です。
- Adobe AIRに統合されたSQLiteデータベースエンジンを用いれば、ファイルシステム上のデータベースの作成と操作が可能。
- Adobe AIRに統合されたWebKitを用いれば、HTML5やCSS3など最新のWeb標準技術を利用可能。
2008年2月にAdobe AIRの最初のバージョンである1.0がリリースされて以来、デスクトップウィジェットやデスクトップRIAなど、デスクトップに彩りを与える活用例は日々増え続けています。下記サイトでは様々な活用例を見ることができます。
Adobe AIR 2の新機能
Adobe AIR 2(本稿執筆時の最新版は2.0.3)の新機能のうち、代表的なものを以下に挙げておきます。詳しくは、「Adobe AIR 開発者向けリリースノート」や「Adobe AIR Release Notes」をご覧ください。
- 主要コンポーネントのアップグレード
- パフォーマンスの向上
- Linuxのサポート
- ネイティブプロセスAPI
- ネイティブインストーラの作成
- UDPネットワーキングのサポート
- 大容量ストレージデバイスの検出
- プリンタ関連機能の強化
- グローバルエラーハンドラーのサポート
- HTTP圧縮応答のサポート(Mac OS X/Linux:2.02、Windows:2.0.3)
- Androidサポート
Flash Player 10.1(10.1.53.64)、SQLite 3.6.16、WebKitはSafari 4.0.3と同等のバージョンにアップグレードしています。
高速になったFlash Player 10.1の恩恵により、パフォーマンスが向上しています。
AIRアプリケーションがLinuxでも動作可能となりました。
標準入力、標準出力、および標準エラーを通じ、ネイティブプロセス(.exeなど)とのやりとりが可能です。
.airだけではなく、.exeや.dmgなどのネイティブインストーラを作成可能となりました(なお、Windows環境で.dmgを作成したり、Mac OS環境で.exeを作成することはできません)。ネイティブプロセスAPIを使用する場合は、ネイティブインストーラでの配布が必須です。
Adobe AIR 1.xではTCPソケットのみでしたが、UDPでも作成可能となりました。
USBストレージなどのデバイス検出が可能です。
プリンタ関連APIが増え、プリントダイアログを表示せずにプリントすることも可能です。
Flash Player 10.1の新機能により、トップレベルでの例外を捕捉可能となりました。
サーバサイドでGZIP圧縮されたストリームを、AIRクライアントで受け付けることが可能です。これにより、通信量の軽減がより容易に実現できます。
Android端末向けにAIRアプリケーションを開発/配布が可能となります。