Saturday, January 21, 2012

Flash復権の日は近い?Adobe AIR SDK 3.0が2012年を動かす

日リリースされたAdobe AIR SDK 3.0において、Native Extensions(ネイティブ拡張)がサポートされた。これはどのような仕組みかというと、AIRアプリにOSのネイティブ実行ファイルを添付し、AIRからその実行ファイルを呼び出すことが出来る機能だ。Windowsで言えば、AIRアプリからdllを呼び出すことが出来る、と考えてもらえば良い。


の対応により、2012年のスマートフォン開発は大きく変化するだろう。具体的に重要な着眼点として、以下の二つがある。


・Notification(プッシュ通知)のサポート
・アプリ内課金のサポート


の二点は、実は去年までのAIRアプリ開発に於いて、非常に大きなボトルネックとなっていた。
従来のSDK2.6系でもiOSやAndroid向けのアプリのサポートは行われていたが、それはあくまでも「AIRアプリが動き、AIRの中でFlashも動かせる」という、極めて閉鎖的なバーチャルマシン的なものであり、AIRの枠組みの外、つまりOSの持っているAPIへのアクセスは非常に限定的なものだった。
このため、各社ゲームデベロッパーはプッシュ通知とアプリ内課金が不可能なAIRでの開発を避け、iPhoneにはObj-C、AndroidにはJavaで、それぞれ 全く別のソースコードでアプリを開発していたのだ。
そこへ、AIR SDK 3.0のNative Extensionsのサポートである。


ちろん、Native Extensionsは万能ではなく、幾らかの制限もあるだろう。たとえば Androidでrootedアプリの開発には向かないだろうし、iOSでポリゴンを超高速で処理するようなアプリにも向かないだろう。しかし、AIR 3.0でサポートされるFlashPlayer11も、描画速度が格段に向上し、特に3D系の描画が素晴らしく軽くなった。よどほ特殊なことをしない限り、AIRはiOSやAndroid向けのグラフィカルなゲームを製作するにあたり、特別な不具合はなくなり、Obj-CやJavaと勝負できる土俵へ上がってきたのだ。


談になるが、先だってのAppleによるFlash締め出しは非常に印象深い出来事であったが、実は最近、appストアに於いて、AIRアプリのリリース件数が増えており、Adobeもこれを黙認しているどころか、おすすめアプリにAIRで開発されたアプリが登場するようにまでなっている。この現象がS.Jobs氏の死去と関係があるのかは不明だが、AppleはAndroidに対抗するために、より広く門戸を開け放とうとしていることは確かだろう。safariでflashがサポートされることはないかもしれないが、AIRが閉めだされる心配は、もはや皆無だろう。


AIRアプリがObj-cやJavaに比して有利な点は、なんといってもActionScript3(もはやスクリプトと呼べるほど簡易な言語ではないが)のソースコードを1つ書けば、それでiOS、Androidの両方に対応したアプリケーションが開発可能な点だろう。
また、AIRには現在でも最も強力なアニメーション表現力を持つFlashとの連携がある。グラフィカルでキャラクターの動きが精緻なゲームになればなるほど、画面上の描画はFlashで開発を行い、その制御をActionScript3で行うという開発手法の有利さが際立つ。静的画面のアプリケーションでも、Javaは複数の解像度用にXMLファイルを画像を用意しなければいけないことに対して、AIRならFlashで画面1パターンだけ構成すれば、3インチの画面でも10インチの画面でも、対応できる。ベクターグラフィックスならではの利点だ。


のように、iOS、Androidに於けるアプリ開発にAIRという強力なツールが登場し、2012年は群雄割拠の様相を呈することが予想される。


お、AIRやFlashの開発には、通常Adobe製品が必要だが、windowsであれば、FlashDeveropなど無償の開発環境も揃っているので、金銭的な負担をせずにAIRアプリの開発を行うことが出来る。AIRアプリに取り込むFlashアニメーション(swfファイル)も、以前から無償のものが存在するので、興味のある方は、それらを組み合わせてAIRアプリケーションの開発を試してみてはどうだろうか。


FlashDeverop
http://flashdevelop.jp/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8


参考
AdobeによるFlashとHTML5の方針
http://news.mynavi.jp/articles/2011/12/26/FITC01/

No comments: