Flexの使用経験
すべて
私はFlexのプロダクトマネージャーとして、Flex 4の次期リリースについて多くの人々に説明してきました。その中には、お客様だけでなく、アドビの開発チームも含まれています。このバージョンには、これまでにないほど高い期待が寄せられています。アドビは現在、Adobe Flash Catalyst(現在ベータ版)およびAdobe Flash Builder 4という2つのFlex向けツールのリリースを提供していますが、これらはいずれもFlex 4 SDKを基盤としています。この記事では、新しいSDKとフレームワークの新機能の概要について説明します。
また、「Flash Builder 4の新機能」(Andrew Shorten著)や、「Flex 3 SDKとFlex 4 SDKの違い」(Joan Lafferty著)もお読みいただくことをお勧めします。
Flex SDKの作業では、3つの主なテーマに焦点を合わせてきました。
「Design in Mind(デザインの重視)」テーマの最大の機能は、スキンを扱える新しいコンポーネントアーキテクチャー、Sparkです。Sparkは既存のMXアーキテクチャーを基盤としており、デベロッパーとデザイナーが協力して、Flexアプリケーションの外観においてさらに豊かな表現力を発揮するためのメカニズムを提供します。現在、Sparkには約30の新しいコンポーネントとプリミティブがあり、アドビの次世代コンポーネントの基盤を形成するとともに、Adobe Flash Catalystと容易に統合できるようになるはずです。 今回のリリースには、この新アーキテクチャーについて計画されていたほとんどのコンポーネントが盛り込まれています。Sparkには、MXに存在するすべてのコンポーネントの新版が用意されるわけではありません。 SparkとMXは基盤が共通なので、すべての既存MXコンポーネントは新しいアーキテクチャーと容易に相互運用できます。新アーキテクチャーについて詳しくは、Deepa Subramaniamによる記事「Sparkのアーキテクチャーとコンポーネントセットの概要」を参照してください。
また、FXGのサポートも大きな進化です。これはFlashプラットフォーム向けの新しい交換フォーマットです。Flexフレームワークには、FlexアプリケーションでFXGを直接使用するためのサポートに加え、FXGのタグと連携するグラフィックプリミティブがあります。 これらのグラフィックプリミティブはFlexアプリケーションで直接使用することが可能で、従来のFlexコンポーネントが備える実行時の編集機能をすべてサポートしています。高パフォーマンスのグラフィックをサポートするため、コンパイラーが、静的なFXGをFash Playerがネイティブで認識できるSWFタグに直接最適化できるようにもしました。 これによって、グラフィックタグを任意のエディターで編集する柔軟性を実現しながら、要求の高い箇所では最大のパフォーマンスを引き出すことも可能となります。 FXGの詳細
Sparkアーキテクチャーには、柔軟性が向上した新しいレイアウトモデルもあります。新しいレイアウトは実行時に割り当て可能で、2D回転や拡大・縮小が完全にサポートされるほか、レイアウト後のコンポーネントにFlash Player 10の新しい3D機能を適用できます。この新しいレイアウトメカニズムによって、Listクラスだけでなく、通常のコンテナモデルでも仮想化をサポートできます(扱いにくいRepeaterともお別れです)。どのコンテナでもリストでも、スムーズなスクロールが可能です。 Sparkのコンテナとレイアウトの詳細を参照してください。
最後に、Sparkでは、強化されたアニメーションエンジンを新しく導入しました。これが、エフェクトとトランジションの改善の基盤として機能します。Flex 4では、トランジションの自動逆転、Pixel Benderのフィルターのエフェクトとしての適用、3つのプレーンすべてでの変換、複雑なキーフレームベースのアニメーションがサポートされています。エフェクトの使用例については、サンプルアプリケーションで実際に見ることができます。Sparkのエフェクトについて詳しくは、ドキュメントおよびChet Haaseによる記事(パート1、パート2)を参照してください。
Flexでは、ステートの改善が必要だと常々感じてきました。 ステートの概念そのものは難しくないはずですが、Flex 3では、概念とは違ってわかりにくい実装となっていました。そのため、Flex 4では、新しいMXML言語でいくつかの改善を行い、ステートの操作を簡単にしました。
新しいモデルをサポートするためにMXML言語をMXML 2009にアップグレードすると同時に、より優れたツールをサポートするためにMXMLに小さな改善も行いました。なお、シンプルなテキストエディターによる編集も引き続きサポートしています。MXML 2009と 新しいステータスシンタックスの詳細も参照してください。
「Developer Productivity(デベロッパーの生産性)」のテーマでは、コンパイラーのパフォーマンスに主眼を置いています。一般的な事例向けに多くの最適化が実装され、実際に性能が向上することも確認されています。ASDocツールにも多くの改善を行いました。MXMLドキュメントでのASDocのサポート、共通の機能リクエストなどです。バインド機能のアップグレードも行い、双方向通信も行えるようになりました。バインド式の先頭に@を置くだけで、バインド先への更新がバインド元にコピーされます。また、ご要望の多かった点は、CSSセレクターのサポートの拡大です。子孫セレクターとIDベースのセレクターなどがサポートされるようになりました。これらの改善について詳しくは、ドキュメンテーションを参照してください。
Flexフレームワークの進化は、Sparkアーキテクチャーの後も継続する必要があります。 その取り組みの一環として、Flex 4では、Flexアプリケーションにおけるビデオの扱いを改善しました。Sparkには、VideoDisplay(クロームを持たないビデオコンポーネント)と、VideoPlayer(スキン対応のVideoElementラッパー)が用意されています。どちらのクラスも、Open Source Media Framework(OSMF)のビデオクラスを基盤とするものです。これらによって、ドラッグ&ドロップで簡単にアプリケーションにビデオを配置し、ビデオのルック&フィールをカスタマイズできるようになりました。OSMFの詳細
Flash Player 10が備える強力な機能の中に、新しいテキストエンジンと、それに関連したText Layout Frameworkがあります。テキストエンジンとテキストレイアウトフレームワークは、Flexフレームワークに直接組み込まれる予定です。Spark向けの新しいテキストコントロールとなるだけでなく、基本的にMXのコントロールからも使用できます。新しいテキストコントロールでは、双方向テキストがサポートされます。また、すべてのロケールでFlexアプリケーションを使用できるようにするため、このリリースでは提供していないミラーリングのサポートをFlexに早期に(今後のドットリリースで)追加する予定です。さらに、HTMLテンプレートを、旧Adobe Flash Player Detection Kitベースから、オープンソースのSWFObjectプロジェクトに移行します。これについても多くのご要望がありました。
ご覧いただいたように、次世代のFlex開発をお試しいただける準備は整っています。Flash BuilderおよびFlash Catalystベータ版をダウンロードしてお使いください。また、Flex SDKのみダウンロードすることもできます。Flexにより、これまで優れたアプリケーションが構築されてきました。新たなフレームワークとツールが、より一層、皆様のお役に立てることを願ってやみません。