新年明けましておめでとうございます。「BeInteractive!」という屋号でフリーランスの ActionScript エンジニアをやっている新藤です。あっという間に2010年ですね。
2008年10月にFlashPlayer10がリリースされ、同年12月にCS4が発売され、「もう次の世代か、早いなー」と思った方も多いのでしょうが、さらにその次の世代がもう目の前まで迫ってきています。2009年10月にロサンゼルスで開催されたAdobe MAX 2009でも発表があったように、今年は様々な製品やテクノロジーの新バージョンのリリースが予定されています。中には、既にベータ版が配布されているようなものもあります。
うかうかしていると、あっという間に取り残されていってしまうWeb業界ですが、そうならないように今一度、今年注目のFlash関係のトピックをおさらいし、一緒に気持ちのよいスタートを切りましょう!
AIR 2.0
まず一つ目のトピックは、AIR 2.0です。既にAdobe LabsではSDKとランタイムのベータ版が配布されており、新機能を使った開発を評価することができるようになっています。
AIR 2.0の新機能をいくつかピックアップしてみると、次のようなものがあります。
- 外部デバイスの認識
- ソケット待ち受けのサポート
- IPv6やUDP通信のサポートなどネットワーク機能の強化
- 外部アプリケーションの呼び出し
- 各OSごとに向けたインストーラーの作成
- クロスプラットフォームの強化
一見すると地味なアップデートに見えますが、デスクトップアプリケーションとしてはなくてはならない機能がいくつか追加されています。特に、外部アプリケーションの起動は以前から要望が多かったもので、嬉しい人も多いのではないでしょうか。しかも中途半端な実装ではなく、コマンドライン引数の受け渡しや、標準入出力のやり取りもしっかりできるようになっています。これによって、OSが絡む複雑な処理はネイティブのアプリケーションに任せて、フロントエンドはAIRで作成する、なんて使い方も増えてくるのではないかと思います。
ネットワーク周りの機能追加も目立ちます。中でも、ソケット待ち受けができるようになったのは注目です。ソケット待ち受けができるようになったということは、サーバーを介さず、各アプリケーション同士が直接通信を行う、P2P型のアプリケーションが作成できるようになったということです。インスタントメッセンジャーやファイル共有、ゲームなど、様々なジャンルで活用されるのではないでしょうか。最近ではFlash製のオンラインマルチプレイのゲームも増えていますから、AIRでP2P通信をするゲームなんていうのも出てくるかもしれません。
なお、この次に紹介するFlashPlayer 10.1の機能も、もれなくAIR 2.0で使えます。
FlashPlayer 10.1
二つ目のトピックは、FlashPlayer 10.1です。こちらも、既にAdobe Labsでベータ版が配布されており、インストールして評価することができるようになっています。
FlashPlayer 10.1は、モバイル(スマートフォン)への搭載を意識したアップデートになっています。既にデスクトップ版のものをインストールした人から「10.0系よりもパフォーマンスが良い」という感想を聞いた人もいるかもしれませんが、それはモバイル向けに最適化された結果なのです。モバイルデバイスではメモリもCPUもデスクトップほど贅沢には使えないため、メモリの使用効率、スクリプトの処理速度、レンダリング速度など、全般にわたって大きく改善されているようです。スクリーンの縦/横の検出、スリープモードの追加、可変フレームレートのサポートなど、モバイル版FlashPlayer 10.1だけに提供される機能もいくつかあります。海外では、多数のスマートフォンにFlashPlayer 10.1が搭載されるようなので、今後、モバイル向けのコンテンツも、フルスペックのFlashで作成する、というのが主流になっていくかもしれません。ただし、日本ではスマートフォンではなく国内産の携帯がまだまだ主力ですから、まだしばらくはFlashLiteを念頭においた開発のままかもしれません。
最近では、タッチパネルを搭載したモバイルデバイスも増えています。というわけで、当然のようにマルチタッチやジェスチャもFlashPlayer 10.1でサポートされ、マウスのようにイベントとして取れるようになっています。さらに、モバイルデバイスだけでなく、Windows7搭載のタッチパネル対応機種や、Mac OSX 10.6搭載のMacBookのトラックパッドなどにも対応していて、デスクトップでもそれらのイベントが取れます。新しい入力方法として使ってみると面白いかもしれません。
そのほかの新機能としては、グローバルエラーハンドリングや、マイク入力のサポートなどがあります。予期せぬ場所で発生したエラー(しかもデバッグ版プレイヤーだとダイアログが出てくる)の取り扱いはいつも開発者を悩ませるものですが、これを解消するのがグローバルエラーハンドリングです。そういったエラーに対するハンドラを仕掛けることができるようになります。マイク入力は、いままでFlashMediaServerなどを介さないと取れませんでしたが、10.1からはサーバーを介さずとも、生のデータを直接取得できるようになります。そのデータを加工し、10.0で追加された音の動的生成によって再び鳴らす、なんてこともできますから、表現の幅がまたひとつ広がったことになります。
Flash Professional CS5
三つ目のトピックは、Flash Professional CS5です。こちらは、残念ながら、製品のリリース優先のため、ベータ版はリリースされないことが先日アナウンスされました。
ベータ版は無くなったものの、既に各所で噂されている通り、大目玉機能が一つあります。iPhone 書き出しです。これは、Flash Professional上でAIRアプリケーションを作成するかのように、iPhone用のネイティブアプリケーションを作成できてしまう機能です。しかも、FlashPlayerとSWFファイルをくっつけてしまうプロジェクタのような方式ではなく、Flashコンテンツそのものを、ネイティブコードに変換して、正真正銘のネイティブアプリケーションを作ってしまうという代物です。実機でも問題なく動かすことができ、さらに、AppStoreに並べることもできてしまいます(既にアドビによって作られたアプリケーションが並んでいます)。Flashさえ作ることができれば、CocoaやObjective-Cが分からなくても、Windowsユーザーであっても、iPhoneアプリに参入できるということで要注目です。興味がある方は、早いうちからiPhone Developer Programへの登録や、コンテンツやUIの研究・先行作成をしておくといいかもしれませんね。
iPhone書き出しばかり騒がれるCS5ですが、もちろん他にも新機能はあります。特に日本人にとって注目すべきは、TLF(Text Layout Framework)の搭載でしょう。TLFは、ビルトインのFlashPlayer APIで提供される、低レベルなテキストAPI(flash.text.engineなど)をラップして使いやすくしたもので、普通のTextFieldなどではできないような段組み・レイアウト・縦書き・テキストの細かいプロパティの調整などができるというものです。Adobeが、もともとFlashの開発をしていたMacromediaを買収する以前にInDesignなどのDTPソフトで培ってきたテクノロジーが、だんだんとFlashにも反映されていっているわけです。
地味ですが大きな変更としては、.FLAファイルが、バイナリ形式からXFLというXMLベースのファイル形式に変更になったことが挙げられます。.FLAファイル内で使用するアセットの管理や、.FLAファイルのそのもののSubversionなどでのバージョン管理がしやすくなるでしょう。
スクリプト周りの新機能では、よく使うコードをすぐ挿入できる、コードスニペットパネル、FlashBuilderをエディタとして使うためのインテグレーション、カスタムクラスのコードヒントや補完といった、ActionScriptパネルの強化などがあります。Flash Professionalをエディタとして使う人も多いようですから、これは嬉しいのではないでしょうか。
Flash Platform の意味
さて、今年2010年に待ち構えているトピックとして、AIR・FlashPlayer・Flash Professionalについて見てきました。全体として、デスクトップアプリケーション、モバイルデバイス、スマートフォン、iPhoneといった、Web以外への利用にフォーカスしたアップデートが多いのが分かると思います。
少し前から、アドビはFlash Platfomという構想を掲げています。この構想はFlashをOSのような基盤技術に仕立て上げ、「どこでもFlash」を目指すものだと思っているのですが、今まさにそれに近づいていっているような気がします。Flashを武器に、様々な土壌で戦える未来も、そう遠くはないかもしれません。2010年は、Flashがブラウザの外にも広がっていくのが、だんだんと見え始める年になるかもしれません。