先月末、米Adobe Systems社のAIR担当エバンジェリスト Mike Chambers氏、プラットフォームエバンジェリストのRyan Stewart氏が来日し、次のFlashプラットフォームについてお話を伺う機会を得ました。「新機能の見所」「デザイン連携」「開発生産性」、3つの側面からの新しいFlashプラットフォーム開発における見所を紹介します。
プラットフォームエバンジェリスト Ryan Stewart氏(右)

新しいFlashプラットフォームの新機能
――まず、Flash Player 10の新機能、今後のスケジュールについて聞かせてください。
Flash Player 10は、もう数か月に渡ってAdobe Labsでパブリックベータを公開しており、実際に試した開発者・デザイナーからは非常に前向きな反応をもらっています。開発はほぼ完了しており、リリース日はまだ公表できませんが、まもなくということは言えます。
一番のテーマは「より表現力豊かなコンテンツ・アプリケーションが作れるようにする」こと。そのため数多くの新機能を追加しました。例えば、Adobeが「2.5D」と呼んでいるSpriteやMovieClipを3Dのように表示する機能や、Adobe Pixel Benderのサポートが挙げられます。
「Adobe Pixel Bender」は、画像(ビットマップデータ)の操作を行う新しい技術・言語で、開発者が独自のエフェクトやフィルタを足してFlash Playerをカスタマイズすることができます。別スレッドを使うため、マルチコア対応で処理速度が早く、作成した機能はPhotoshopやAfter Effectsといった他のAdobe Creative Suite 4(以下、Adobe CS 4)製品でも使うことができます。
Adobe LabsのWebページでは、その他の新機能や動画によるデモなどを確認することができる。
――ActionScript 4については?
現在、ActionScript 4と呼ばれるものはありません。大きな変更がない限り、製品スイートがバージョンアップしても開発言語は新しいバージョンには移行しないからです。
ActionScript 3は、APIの追加が中心ですが、現在も機能拡張を行っています。例えば、「Vector」クラス。要素の型がすべて同じ必要がある配列で、通常の配列Arrayに比べ、パフォーマンスが劇的に改善されました(参考)。また、新たなレベルの描画APIも用意したため、複雑なコンテンツや3Dの描画が簡単になり、パフォーマンス向上も期待できるようになりました。Flashコンテンツをブラウザ上で表示するだけでなく、Flashアプリケーションからローカルファイルの読み書きもできるようになりました(FileReferenceクラス)。ローレベルのテキストAPIも追加し、カーニングやフォントのコントロール、右から左へのテキスト書き、カラムベース(縦書き)のテキストもサポートしました。
――ECMASCript 4の標準化作業が中止され、ECMAScript Harmony(3.1)に作業が集中するようになったことで、ActionScript 3への影響はあるのでしょうか?(AS3とES3.1は非互換)
Adobeは、ActionScriptを推進して行く上で大きなインパクトはないと考えています。ActionScript 3から機能を取り外すようなことはしませんし、開発者から依頼のあった機能はこれからも付け加えていきます。
――Flex 4については?
Flex 4(コードネーム:Gumbo)は、まだ開発プロセスの非常に早い段階にあります。オープンソースとなったので、完全にオープンな開発形態であり、従来よりも非常に早い段階で情報を公開しています。この早期段階での情報公開は、開発者からのフィードバックを得るのに必要と考えています。機能の一部は、Flex SDKのサイトからNightly Buildをダウンロードすることで試していただけます。
デザイナーと開発者の生産性を上げていくという意味で、3つのテーマに焦点を当てて開発を進めています。デザイナーと開発者がコラボレーションしやすいような「デザインの考慮(Design in Mind)」、コンパイラの性能向上や、データバインディング機能の拡張などによる「開発生産性の向上(Developer Productivity)」、新しいFlash Playerの性能を活用し、よく使われる機能を追加する「フレームワークの革新(Framework Evolution)」です。
――Adobe AIR 1.5については?
約1か月前にFlex SDK 3のNightly Buildで早期段階のAdobe AIR 1.5を出しました。Flexチームと共同で作業しているため、その意味でも早い段階から表に出していくのは重要と考えています。
主なフォーカスポイントはFlash Player 10と同様に、「より表現性の高いクリエイティブなアプリケーションを作成可能にする」こと。また、各リリースでは常にパフォーマンス向上に努めてきましたが、今回もメモリ使用率・CPUパフォーマンスの改善や、開発者から要望のあった機能拡張を進めていきます。
リリースは今年秋を予定しています。OSはWindows、Mac OS X、Linuxに対応しており、Linuxだけ少しリリースが後になるかもしれませんが、年末にはすべてリリースする予定です。
主な新機能は、Flash Player 10のすべての機能への対応、WebKitの新JavaScriptエンジン「SquirrelFish」対応によるJavaSciprt実行環境の改善など。また、開発者からの要望が多かったSQLiteの暗号化もサポートします。どれも開発者の要望にすばやく反応したいため、増分リリースという形になるでしょう。
開発者とデザイナーとの連携
――Adobe CS4と同時に発表のあった、FXGについて教えてください。
「FXG」は、Flashプラットフォームに特化した形で作られた新しいグラフィック言語です。XMLベースのフォーマットなので、テキストエディタで直接記述することもできますが、主にAdobe製品から書き出して使うケースを想定しており、メリットもそこにあります。
Flex Builder 4は来年まで出ませんが、Adobe CS 4では既にいくつかサポートが始まっています。Illustrator CS 4はFXGの読み書き、Photoshop CS 4、Fireworks CS 4はFXGの書き出しを行えます。
Flexの次のステージとして、開発者のコーディングとデザイナーのデザインを同時進行できるような、新たなコンポーネントアーキテクチャーを作ろうとしています。この際、デザイナーは「Thremo」(サーモ)というデザインツールを利用することになります。
また、「スキニング」というアプリケーションのプレゼンテーション部分(スキン)を扱う新しいコンポーネントも用意されます。
――先ほど話に出たデザインツール、「Thremo」について教えてください。
「Thermo」は、Adobe CS 4(デザイナー)とFlex 4(開発者)との作業の橋渡しをするリンクになるツールです。1年前にそのビジョンを説明しました。まだリリース日は未定ですが、できるだけデザイナーや開発者のコミュニティからフィードバックを得たいと考えているので、オープン性を保ち、随時パブリックアルファやパブリックベータを出していきたいと考えています。
Thermoは、Flex 4の新機能を取り込み、Flex 4とともに進化していきます。また、Flex Builderと同様にEclipseベースになっており、コードを使い慣れているデザイナーや、クリエイティビティ性の高い開発者は、Flex BuilderとThermoのビューを切り替えながら活用することができるでしょう。

前日開催されたFlex User Group(FxUG)での勉強会では、実際にThermoのプロトタイプや、FXGでIllustrator CS 4と連携するデモが行われた。IllustratorのアートワークをFXG形式で書き出してThermoに取り込み、オブジェクトをボタンやスクロールバーといったコンポーネントに変換したり、四角形の角丸の半径をFlex側で動的に変更するなど、Adobe CS 4と柔軟な連携が可能になっている様子が示された。
開発生産性
――新しいFlashプラットフォームでの、開発生産性の変化について教えてください。
開発生産性については、まずコンポーネントのスピードを5倍に上げるという目標を上げ、大規模に取り組みました。また、今まで煩雑だったタスクをもっと簡単にすることにも注力しています。具体的には、異なるコンポーネント間での双方向バインディングのサポート、エフェクトやトランジション用の新たなアーキテクチャなどです。
開発者にとっては、まったく新しいことが実現できるようになるというより、これまで苦労していた部分が簡単になる、と考えていただけるとよいでしょう。また、先述のフレームワークの革新ですが、これにはコミュニティからのバグフィックス報告が大きく貢献しました。

――従来、FlexというとColdFusionやJavaとの連携が中心だったように思えますが、最近はAMF技術を利用した他のサーバーサイド言語との連携も増えてきたように感じます。そういった状況については?
今までも、どんなバックエンドでもFlexのアプリケーションと通信することは可能でした。ただ、既存のサーバー技術を活用した方が、より密接な統合ができるようになってきています。Open Screen Projectの一部としてAMFプロトコルがオープンになり、オープンソースプロジェクトでの積極的なサポートが可能になったことで、最近は、PHP/Ruby/Perl/Pythonなど、多くのコミュニティでFlex連携の活動が活発化しています。Adobeとしても、最近はより積極的にコミュニティの活動をサポートしています。
Flexのバックエンドに何を使うか、さらに開発者の柔軟性は高まったと言えます。AdobeはWeb開発者に、自身の持つ開発技術を保ちながら、ぜひAdobeの技術を使ってください、と奨励しています。その表れとして、PHPベンダーのZend Technologies社による、Zend FrameworkのAMF対応、Zend StudioとFlex Builderとの連携などが挙げられます。
こういった様々な統合を、ツール側、オープンソースプロジェクト側で実現することにより、サーバーにかかわる開発者がより仕事をしやすくなってきたと思います。この「クライアントサーバ間の開発をもっと楽にする」ことは、次世代のFlex Builderのフォーカスにもなっています。
Action Message Format。Flash/Flex(ActionScript)とサーバーサイドとのデータ通信をバイナリ形式で行うプロトコル。XMLやJSONのようにテキスト形式で通信を行うフォーマットに比べ、パフォーマンスや使い勝手がよい。Javaとの通信を行うオープンソースプロジェクトの「BlazeDS」とともに仕様が公開された。AMFPHP、RubyAMF、PyAMFなど、さまざまなサーバーサイド技術と連携するライブラリの開発がオープンソースで進められている。
具体的なRuby、Python、PHPとの連携方法は、Adobeデベロッパーセンターの記事などを参照のこと。
――最後に、日本の開発者に向けて一言お願いします。
日本に来るたびに、世界のどこよりもクールなものが日本にはあることに驚かされます。我々の技術をとてもクリエイティブな形で使っています。だからメッセージがあるとすれば、ぜひ今やっていることをそのまま続けてください。そして、もし面白いことをやった場合は、私にEメールをください。
Mikeより先にメールをください(笑)。
ぜひ日本のコンテンツ、作品をアメリカにも見せびらかすようにしてください。 特に英語圏の人たちは、Flash、開発者コミュニティという意味では、日本の持つクリエイティビティ、表現力にもっとさらされるべきだと思います。
――ありがとうございました。