Flash PlayerとAdobe AIRは、Webとスタンドアロンというアプローチの違いはあるものの、同じFlashプラットフォームとして基本的な部分では共通の機能を持っている。Filner氏は、両者に共通する主な機能として以下のものを挙げている。
- スクリーンの向き(縦横の切り替え)
- タッチとジェスチャー
- 加速度センサー
- ハードウェアアクセラレーション
- H.264形式のハードウェアデコード
- メモリ最適化
- RTMPEを用いたストリーミング
- フラッシュメモリへの安全なアクセス(デスクトップ)
特筆すべき点としては、モバイル端末特有とも言える加速度センサーやスクリーンの向きの切り替えといった機能が、両者に共通で備わっている点である。マルチスクリーン対応がFlashプラットフォームの核となっていることがよくわかる。AIR 2.5ではその辺りの機能がさらに強化されている。AIR 2.5の主な新機能としては次のようなものが挙げられている。
- カメラのサポート
- マイクのサポート
- 位置情報システムのサポート
- Hosted Webview
- メディアライブラリー
- ローカルファイルシステムへのアクセス
- SQLiteによるデータストレージ
- リモコンによるコントロール(テレビ)
Hosted Webviewは、AIRアプリケーション内にWebブラウザのインスタンスを埋め込んでWebの閲覧を可能にする機能である。これによってHTMLとSWFのコンテンツをシームレスに統合することが可能になるという。
2.5の登場によって、AIRのターゲットはデスクトップPCだけでなくスマートフォンやタブレットPC、テレビにまで大きく広がる。しかし、どのデバイスに対しても全ての機能を放り込めばいいというものではないとFilner氏は指摘する。たとえばテレビに加速度センサーが付いているというケースはあまり考えられない。限られたリソースを有効に利用するためには、不要な機能は搭載するべきではない。そこでAIRでは、AIR 2より追加されたプロファイル機能にってターゲットとするデバイスごとの基本機能を定義するという。プロファイルの例としては次のようなものが挙げられる。
-
デスクトップPC用プロファイル
- 印刷
- フラッシュメモリへのアクセス
- WebKitの統合
- 暗号化されたストレージ
- 複数ウィンドウ
-
スマートフォン用プロファイル
- Hosted Webview
- マルチタッチ
- カメラ
- メディア・ライブラリー
- 加速度センサー
- 位置情報システム
-
テレビ用プロファイル
- ActionScript 3エンジン
- SQLite
- ネットワーク接続
- 高度なグラフィック機能
このように対象とするデバイスごとに提供する機能を選択するという方針には、Adobeのマルチスクリーン対応に対する考え方がよく現れている。開発の現場ではよく「Write once, run anywhere(一度開発したら、どこででも動く)」という考え方が喜ばれる。しかしFilner氏によれば、Adobeではこの考え方を現実的ではないと考えているそうだ。では本当に理想的なマルチスクリーンとのはどのようなものなのか。同氏はスライドに次のように映し出した。
- One toolchain and workflow
- Reuse code
- One set of runtimes
- Tailored experiences
日本語に言い換えると、「ひとつのツールチェーンとワークフローで構築できること、コードが再利用できること、ランタイムが1セットであること、そして端末に応じてカスタマイズされたユーザ経験が提供されること」という感じになる。最後の「Tailored experiences」というのは、何も基本機能のサポートに限った話ではない。たとえばスマートフォンとデスクトップPCではスクリーンのサイズが異なるので、当然ながらUIの最適なレイアウトも変わってくる。このようなデバイスごとの特性を引き出して最適化できることが真のマルチスクリーン対応だとFilner氏は語っている。