
Adobe
私はFlexのプロダクトマネージャーとして、Flex 4の次期リリースについて多くの人々に説明してきました。その中には、お客様だけでなく、アドビの開発チームも含まれています。このバージョンには、これまでにないほど高い期待が寄せられています。アドビは現在、Adobe Flash CatalystとAdobe Flash Builder 4という2つのFlex向けツールのベータ版リリースを提供していますが、これらはいずれもFlex 4 SDKを基盤としています。この記事では、新しいSDKとフレームワークの新機能の概要について説明します。なお、これはベータ版ソフトウェアであるため、機能が変更される可能性、製品への変更がドキュメントにが反映されていない可能性、バグが存在する可能性などに留意してください。SDKの開発状況の確認はOpen SourceのFlex SDKサイト*で、バグの確認は公開バグシステム*で行っていただけます。その他のご意見・ご感想は、アドビのフォーラム*からお送りください。
また、Flash Builder 4ベータ版の新機能(Tim Buntel著)や、Flex 3 SDKとFlex 4 SDKベータ版の違い*(Joan Lafferty著)もお読みいただくことをお勧めします。
Flex SDKの作業では、3つの主なテーマに焦点を合わせてきました。
Flexの使用経験
「デザインの重視」テーマの最大の機能は、スキンを扱える新しいコンポーネントアーキテクチャー、Sparkです。 Sparkは既存のHaloアーキテクチャーを基盤としており、デベロッパーとデザイナーが協力して、Flexアプリケーションの外観においてさらに豊かな表現力を発揮するためのメカニズムを提供します。現在、Sparkには約30の新しいコンポーネントとプリミティブがあり、アドビの次世代コンポーネントの基盤を形成するとともに、Adobe Flash Catalystと容易に統合できるようになるはずです。 このベータ版リリースには、新しいアーキテクチャーへの実装が予定されているほぼすべてのコンポーネントが含まれていますが、ベータ版の後で調整を行う可能性もあります。Haloに存在するすべてのコンポーネントがSparkに移行するわけではありません。 ただし、基盤が同じであるため、新しいアーキテクチャーでHaloのすべての既存コンポーネントを相互運用することは容易です。アーキテクチャーの詳細については、DeepaのGumboコンポーネントアーキテクチャーに関する記事*を参照してください。
また、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のエフェクト*の詳細も参照してください。
Flexでは、ステートの改善が必要だと常々感じてきました。 ステートの概念そのものは難しくないはずですが、Flex 3では、概念とは違ってわかりにくい実装となっていました。そのため、Flex 4では、新しいMXML言語でいくつかの改善を行い、ステートの操作を簡単にしました。
新しいモデルをサポートするためにMXML言語をMXML 2009にアップグレードすると同時に、より優れたツールをサポートするためにMXMLに小さな改善も行いました。なお、シンプルなテキストエディターによる編集も引き続きサポートしています。MXML 2009*と 新しいステータスシンタックス*の詳細も参照してください。
「デベロッパーの生産性」のテーマでは、コンパイラーのパフォーマンスに主眼を置いています。一般的な事例向けに多くの最適化が実装され、実際に性能が向上することも確認されています。ベータ版の後もさらに改善を続けます。テストスイートに追加できるアプリケーションサンプルや、ご意見・ご感想をぜひお寄せください。ASDocツールにも多くの改善を行いました。MXMLドキュメントでのASDocのサポート、共通の機能リクエストなどです。バインド機能のアップグレードも行い、双方向通信も行えるようになりました。バインド式の先頭に@を置くだけで、バインド先への更新がバインド元にコピーされます。また、ご要望の多かった点は、CSSセレクターのサポートの拡大です。子孫セレクターとIDベースのセレクターなどがサポートされるようになりました。これらの改善について詳しくは、ドキュメンテーションを参照してください。
Flexフレームワークの進化は、Sparkアーキテクチャーの後も継続する必要があります。 Flash Player 10には、新しいテキストエンジンと、それに関連するテキストレイアウトフレームワーク(Flex 4と同時にベータ版をリリース)という強力な機能があります。テキストエンジンとテキストレイアウトフレームワークは、Flexフレームワークに直接組み込まれる予定です。Spark向けの新しいテキストコントロールとなるだけでなく、基本的にHaloのコントロールからも使用できます。新しいテキストコントロールでは、双方向テキストがサポートされます。また、すべてのロケールでFlexアプリケーションを使用できるようにするため、このリリースでは提供していないミラーリングのサポートをFlexに早期に追加する予定です。さらに、HTMLテンプレートを、旧Adobe Flash Player Detection Kitベースから、オープンソースのSWFObjectプロジェクトに移行します。これについても多くのご要望がありました。
ご覧いただいたように、次世代のFlex開発をお試しいただける準備は整っています。Flash Builderベータ版やFlash Catalystベータ版(Flex SDKベータ版だけでも構いません)をダウンロードして、アプリケーションや新しいカスタムコンポーネントを構築してみてください。これはベータ版ソフトウェアです。フォーラム*で、バグのご指摘やご意見・ご感想をお待ちしています。お寄せいただいた情報は、Flex 4を最高の状態でリリースするために活用させていただきます。Flexにより、これまで優れたアプリケーションが構築されてきました。新たなフレームワークとツールが、より一層、皆様のお役に立てることを願ってやみません。

この記事は、Creative Commons Attribution-Noncommercial 3.0 Unported Licenseのもと提供しています。