昨日の発表によると、アドビから提供される Linux 向けの AIR は 2.6 が最後になります。今後アドビは Linux 向けの AIR SDK を開発する代わりに、Linux 用 AIR ポーティングキットを提供するそうです。
このポーティングキットは、Open Screen Project パートナーが Linux 環境に AIR を移植するためのものです。アドビからは OSP パートナーに対する実装サポートが提供されます。この変更により、より様々な Linux ベースの環境で AIR が利用できるようになることが期待されています。
今週の Google I/O で Flash 関連の発表がいくつか行われました。以下、簡単なまとめです。
Android 向け Flash Player 10.1 パブリックベータ
Android 2.2 公開後に、Android マーケットから Flash Player 10.1 のベータ版がダウンロード可能になります。ブラウザ内で Web サイトを閲覧する際、デスクトップと同様に Flash コンテンツを表示可能です。既に発表されていた通り、Flash Player が対応するのは Android 2.2 以降の OS です。
環境をお持ちの方は、動作確認はもちろんパフォーマンスやバッテリーの消費具合なども確認してみてください。過去のブログに書いたように、デバイス向け Flash Player にはパフォーマンス向上のため、デスクトップ版には無い機能がいくつも実装されています。
Android 向け AIR プレリリースプログラム
AIR for Android の開発者向けプレリリースプログラムが始まりました。(Adobe AIR for Android@Labs) このプログラムに参加すると誰でもベータ版の AIR SDK を入手することができます。
ただし、このプログラム内で入手できる情報を一般に公開することはできません。誰でも参加はできますが、プライベートなプログラムのため、情報共有は参加者間のみに限定されます。この点 Flash Player パブリックベータとは異なりますのでご注意ください。また、このプログラムは英語のみでの提供になります。
プリリリースプログラムでは、Flash Professional CS5 から直接 Android 用にパブリッシュする環境を追加する機能拡張も提供されます。
VP8 のサポート
Google I/O で WevM プロジェクトの開始と VP8 ビデオコーデックのオープンソース化についての発表がありました。これに対し、同じく Google I/O のキーノートで、将来の Flash Player での VP8 対応について Kevin Lynch からポジティブな発言がされています。
Vorbis や Matroska については特に言及されていませんが、サウンドもライセンスフリーに向かうのでしょうか?あと、個人的には、VP8 ベースのエンコーダーが Flash Player に載ったりすると嬉しいのですが。(比較的軽いという噂なので)
Google TV の Flash Player 10.1 対応
Google I/O では Android ベースの家電である Google TV が発表されましたが、Google TV でも Flash Player がサポートされます。Google TV には Chrome がブラウザとしてインストールされており、Chrome には Flash Player が含まれることになっているため、Google TV では Flash Player が利用できるということのようです。これにより Google TV では殆ど全ての Web コンテンツが再生できることになります。 (Chrome に Flash Player を統合したのはむしろこっちのためではないかとちょっと勘ぐってしまったり)
下は、実際のデモで Flash Player 10.1 が Google TV 上で実行されている場面です。
ともあれ、Flash Player 10.1 から H.264 ビデオの再生にハードウェアの機能を利用できるようになったことで、映像を扱う家電やデバイスで採用しやすくなったことは確かのようです。Flash ユーザーにとってはより活躍できる場が増えそうですね。
Packager for iPhone は Flash の出力を iPhone 用に変換する機能を持っています。少し紛らわしいですが、Flash CS5 に iPhone アプリの書き出し機能がある訳ではなくて、Flash CS5 には "iPhone アプリの書き出しができる Packager for iPhone" との連携機能がある、が正しい理解です。
これは賢い選択だったのではないかと思います。というのは、iPhone OS のアップデートがあっても、Packager for iPhone だけが対応すればよいからです。
AIR 書き出しの仕組み
まずは、AIR アプリケーション開発の流れの確認から話を始めます。下が AIR アプリ開発の大まかなステップです。
Flash Professional でアプリケーション開発
SWF, application.xml, その他必要なリソースを生成
上記を一つにパッケージ
パッケージに署名
.air ファイルとして配布
AIR アプリを iPhone にインストールできないかと考えたときに、一番楽そうな方法は iPhone 用の AIR ランタイムを開発して配布、なのですが、これはできません。一番の問題は、iPhone ライセンスが、JIT (Just in Time) コンパイラーやインタープリターの使用を禁じていることです。そのため、SWF 内のバイトコードを VM が実行時に解釈するという AIR の実行モデル自体が許可されないのです。
だったら SWF を ARM 向けに事前コンパイルするしかないですね、というのは簡単な結論ではありますが、それにより、どのプラットフォーム上でも実行できるという AIR アプリケーションの持つ利点を放棄する事になってしまいます (EXE ファイルに変換すると、iPhone 専用モジュールになってしまうからです)。にもかかわらず英断が行われて、SWF 用の AOT (Ahead of Time) コンパイラーとして開発されたのが Packager for iPhone ということになります。
Flash Player 10.1 と AIR 2.0 はデスクトップだけでなくデバイス上でも一貫した体験を提供するプラットフォームとして開発されています。Flash CS5 と Flash Player 10.1 / AIR が揃うと携帯やデバイス向けコンテンツ制作もずいぶん変わりそうですね。
デバイス向けは、まずは Android 用 からリリースされるようで、2010 年の後半までには Flash Player, AIR 共に正式版を公開予定との事です。とりあえずは、ベータ版を使った Android 上の AIR アプリデモがこちらのページからご覧になれます。(Flash Player 10.1 and AIR 2 mobile preview videos) 最初の 3 つくらいが Android です。iPhone アプリのビデオも載っています。
Adobe 製品で作成したファイルをファインダーから開いたとき、別のアプリケーションが立ち上がることがある。ファイル拡張子を省略していると起きやすい。これは、Mac OS X 10.6 からファイルの関連付けの方法が変わったためとのこと。回避方法として、ファイル拡張子を使う、ファインダーからファイルとアプリケーションを関連付けを設定する等を紹介。
LocalConnection.isPerUser を使った LocalConnection に接続可能なユーザの設定。true の場合ログイン中のユーザのみ、false の場合誰でもアクセス可能。設定は Mac OS X のみで可能で、デフォルトは false。LocalConnection 使用時は常に true に設定することを推奨。他の OS では常に true になる。
System.disposeXML(xml:XML) メソッドの追加により、不要になった XML オブジェクトを直ぐにガーベッジコレクションの対象とすることが可能に