BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Flex SDK と Flash Builder 4: Andrew Shorten氏に詳細を聞く

Flex SDK と Flash Builder 4: Andrew Shorten氏に詳細を聞く

原文(投稿日:2010/04/21)へのリンク

最近、Adobeは Flash Builder 4とともにFlex 4 SDKのリリースを発表した。Flash Builder 4はFlex Builder 3の後継製品だ。InfoQはAdobeのシニアプロダクトマネージャであるAndrew Shorten氏に今回のリリースがどのようにFlashプラットフォームと結びつき、今後の展望をどのように考えているか詳細を聞いた。

InfoQ: Flex 3からFlex 4への移行に伴い、Flashプラットフォーム全体にいくつかの変更が見受けられます。名前もFlex Builder から Flash Builderへ変わりました。この名前の変更についてもう少し詳細をお聞かせください。

Andrew Shorten氏: Flex Builder 3をリリースした後、私たちが気付いたのはこの製品でコードを編集したりデバッグしたりプロファイリングしたりしたいと思っているのはFlexの開発者だけではないということでした。ActionScriptだけを使うプロジェクトの開発者やFlash Professionalを使っている開発者の中にも無視できない時間をコーディングに当てている方がいます。そのような方はFlex Builderを使っているのです。

このままだとFlex BuilderはFlexを利用していない開発者に対してますます縁遠いものになってしまいますし、一方でFlashプラットフォーム自体に勢いが出てきて、Flexフレームワークを利用しているかどうかに関係なくFlashアプリケーションは作られ続けているということがわかってきました。このような状況は名前を変更することが良い結果を生み出すかどうか評価する良い機会でした。そして今、Flash Builder 4という名前でリリースをしたわけですが、私はこの名前変更にとても満足しています。もちろんFlash Builderは今後もFlex開発者に最高に生産的な開発環境を提供し続けます。しかし、加えてFlash Catalystのユーザのためにワークフローを提供しますし、それには Flash Professionalプロジェクトのサポートも含まれています。またActionScriptの開発者に必要なコード編集の強力な機能を提供します。

本質的に私たちの理解は単純なものです。つまりFlash BuilderはFlashプラットフォームを対象とするアプリケーションを構築するすべての人のための開発環境だということです。例えばMXMLと/またはActionScriptを書いているとしたらFlash Builderを使うべきでしょう。こうしたことでFlexの役割も以前よりはっきりと定義できます。Flexは純粋に、リッチインターネットアプリケーションを構築できるオープンソースのSDKと関係するだけです。

名前の変更の他に、Flash Builder 4には70を超える新しい機能が加えられています。多くの新機能はコードの編集やデバッグ、プロファイルなどActionScriptやFlexアプリケーションを構築する開発者の生産性を向上に寄与します。これらの新しい機能はFlex特有の機能ですが、そのほとんどがFlex 3 SDKを使っているアプリケーションでもFlex 4を使っているプロジェクトでも役に立つ機能です。

Flash Builder 4の新しい機能の一覧とドキュメントへのリンクを私のブログに挙げておきましたので、それぞれの最も興味のある機能について調査することもできるでしょう。

InfoQ: Flex 3の開発者からFlex 4の開発者となるにはどうすればいいのでしょうか。既存のプロジェクトをFlash Builder 4で動作させるにはどうすればいいのですか。

Andrew Shorten氏: 幸いなことにFlex 4 SDKを使ってアプリケーションの移行をしなくてもFlex Builder 3で開発した既存のFlex 3 アプリケーションをFlex 4へ移行できます。つまり、既存のプロジェクトでもFlash Builder 4の新しい機能の恩恵をそのまま受けることができます。

Flash Builder 4へ既存のプロジェクトを移行する方法について記事に書きましが、覚えておくべき重要な点は、コンパイル時に既に使っているFlex 3 SDKを使い続けることを明確に指定することです。

Flex 3からFlex 4へアプリケーションを移行する準備作業に関する限り、大きな作業をしなければならないと考える必要はありません。バグ修正や既定のテーマの変更は必要かもしれませんが、それ以外ではFlex 3のときと同じ(またはFlex 3のときより優れた)動作をするアプリケーションを望むことができます。

Flex 4の新しい機能を使いたい場合は、コードを更新してFlexの新しい名前空間を参照する必要があります。また、非表示プロパティを宣言タグに移動しステートコードを新しいインライン構文を使うように変更しなければなりません。また、新しいSparkコンポーネントを使いたい場合は追加の移行作業をする必要があります。Sparkコンポーネントを使えばSparkを使った視覚効果を利用できますし、Flash Player 10に搭載された新しいテキスト処理機能も使えます。

Adobeは開発者が既存のアプリケーションを簡単に移行できるように移行ガイド (PDF)を提供しています。Adobe Developer Connectionのサイトの各種リソースもあります。このリソースもこのトピックについてのガイダンスを提供します。

InfoQ: Flex 4 と Flash Builder 4の主要な新機能は何ですか。

Andrew Shorten氏: Flex 4 SDKには完全に新しいコンポーネントとスキンアーキテクチャ(Spark)が実装されています。これを使えば今まで見たこともないような表現力のRIAを作ることができます。新しいSparkコンポーネントとスキンアーキテクチャを使えば、コンポーネントのロジックとコンポーネントの表現を"分離"できます。なのでコンポーネントの振る舞いとルックアンドフィールをそのままカスタマイズできます。加えてFlex 4 SDKではコンパイラの性能を改善し、言語とその基盤のさまざまな特徴を強化しました。また、Flash Player 10に対しても新しいランタイムの性能を最大限にサポートしています。

Flash Builder 4では、データ中心型開発の方法を使うことで、これまでよりもバックエンドサービスとの連携が簡単になりました。また、Flash Catalyst と Flash Professionalのための新しい設計と開発のワークフローが使えるようになっています。そして、開発者の生産性にとて本質的なコーディングに関わる機能も強化しています。

そしてこのコーディング機能にだけは、新しいリファクタリング機能を実装しています。また、条件付きブレイクポント、ウォッチポイント、式評価が使えるようにデバッガを改善しましたし、コード生成機能を追加しました。ネットワークモニタリングとFlexUnitを使ったアプリケーションのテストがより簡単になりました。先に述べたようにFlex 3を使っている開発者もFlex 4 SDKを使っている開発者も両方ともこれらの改善点を享受できます。つまり新しいSparkコンポーネントを使う予定がなくてもFlash Builder 4を使えば開発作業全体を改善できるのです。

InfoQ: Flex 3 と Flex 4ではコンポーネントモデルにはどのような違いがありますか。

Andrew Shorten氏: Flex 4にはSparkと呼ばれるユーザインターフェイスコンポーネントを追加しました。これはスキンのための新しいコンポーネントであり、また新しいアーキテクチャを構成します。これがFlex 4の主要な変更点のひとつです。

Sparkを使うとデザイナや開発者はより直接的に少ない労力でシームレスにFlexコンポーネントのビジュアルや振る舞いをカスタマイズすることができます。Sparkのアーキテクチャの基本的な原則は、ビジュアルの要素とそのロジックを分離するスキンモデルをサポートしていることです。この分離によってデザイナと開発者はより自由に作業できるようになります。コンポーネントを制御するロジックの実装とは無関係にFlexコンポーネントのビジュアルの要素を自由に設計できるからです。Sparkのスキンモデルを学習すれば少しの時間で表現力豊かで強力なFlexコンポーネントを構築できます。

InfoQ: 近頃、この巨大なFlashプラットフォームが話題にあがること多々がありました。例えば数ヶ月前のOmnitureの買収についてです。このプラットフォームについて詳細をお聞かせください。

Andrew Shorten氏: Flashプラットフォームの対応範囲はクライアントランタイム、フレームワーク、ツール、サーバ、サービスなど多岐に渡ります。そしてこの対応範囲の中で開発者がアプリケーションを作成するのを支援します。作成されるアプリケーションはインターネットに接続しているデバイスに配置されるものであり、このようなデバイスは日々増大しています。

Flashプラットフォームの必要不可欠な要素として、Flash BuilderはクロスプラットフォームのリッチインターネットアプリケーションとFlexフレームワークを使ったコンテンツを作成する環境を提供します。これらのアプリケーションやコンテンツはAdobe Flash Playerを使ってウェブで配信されたりAdobe AIR上でディスクトップアプリケーションとして動作します。将来的にはFlash PlayerとAdobe AIRが動作するモバイル環境やタブレットなどをターゲットにしたFlexアプリケーションをFlash Builderを使って構築できるようになるでしょう。

統合的な見地に立って言えば、私たちはAdobeのサーバ製品群(ColdFusionやLiveCycleのような)とサービスが提供するもの(例えばOmniture買収によって得られたもの)を使って効率的なワークフローを提供することに注力してきました。しかし、もちろん開発者はAdobeの技術を使っていないホストとも通信可能でありデータの交換もできます。

Flash Builder 4では新しいデータ中心開発の機能を追加しました。これらの機能はサーバサイドのサービスを見直すこともできます 。例えば、Flash Builderを使ってサービスのクライアント側の表現を生成してデータモデルと関連づけ、サービスの処理をビジュアルコンポーネントにドラッグアンドドロップすることで返却値となるデータをバインドできます。この方法を使えばデータとFlexアプリケーションの統合が簡単になりますし、XML、PHP、ColdFusion、Java、ウェブサービス(サードパティ製のアダプタを使った)や.NETのバックエンドとも簡単に連携できます。Flash Builderにアプリケーションモデリングツールを搭載したことでAdobe LiveCycle Data Servicesもこの方法に対応しています。またAdobe LiveCycle Data Servicesは高性能のデータメッセージングをサポートし質の高いデータを提供します。また、ネットワークにつながっていないときはオフラインのデータ管理機能を提供します。

In relation to Omnitureに関して言えば、まもなくFlash Builderの拡張をリリースする予定です。この拡張を使えば開発者はリッチインターネットアプリケーションを作成しているときに視覚的にSiteCatalystのトラッキングを埋め込むことができます。こうすることで手動でタグを書いてトラッキングと分析に必要なカスタム変数を埋め込む必要がなくなります。実装はとても簡単になるでしょう。

InfoQ:Flex 4ではFlex 3にあるコンポーネントをほとんどすべて新しくしました。しかし、そうでないものもあります。例えばHalo (Flex 3コンポーネントモデル)にはDataGridがありますが、Gumbo (Flex 4のコンポーネントモデル)にはありません。この問題に対処する計画はありますか。ある場合、いつ頃に対処する予定ですか。

Andrew Shorten氏: はい、残念ながらFlex 4のコンポーネントへの移行に間に合わなかったコンポーネントがいくつかあります。しかし、実は最初からこのような事態になってしまうことは想定していましたので、同じアプリケーションで簡単にMXとSparkの両方のコンポーネントを一緒に使えるようにしています。なのでSpark版の(例えば)DataGridがないからといってFlex 4への移行をためらうべきではありません。

もちろんまだ移行できていない主要なコンポーネント(DataGrid、TreeそしてForm)はSparkにも対応させたいと思っています。これからリリースされるコードネーム"Hero"と呼ばれているFlex SDKでは対応させる計画です。現時点ではまだこのSDKがいつリリースされるのか発表できませんが、開発者はAdobe Open Sourceサイトでナイトリービルドを確認することで進捗具合を確認できます。

InfoQ: Flex 4ではコンパイラの性能改善が行われていますが、コンパイル時間ではFlexコンパイラはまだJavaの後塵を排しています。Javaと比べてなぜFlexはコンパイルにこんなに長い時間がかかるのでしょうか。いつかJavaのコンパイル時間と同程度でFlexのコンパイルができる日が来ますか。

Andrew Shorten氏: Flexコンパイラの性能改善はこれまでもFlexのリリース時の目標のひとつでした。それはこれからもかわりません。Flex 4では段階的なコンパイルや完全コンパイルの性能を大幅に改善しました。同様にコンパイル時のメモリの使用量も大幅に少なくしました。これからの数回のリリースでは今までの倍このような改善をするつもりです。他のクライアント技術に匹敵するコンパイル速度を目指しています。また、Javaのような技術もコンパイル速度の改善には多くの年月を費やしてきたということも考慮すべきだと思います。おなじようにFlashとFlexも毎回のリリースごとにコンパイルの改善を着実に進めていきます。

この記事に星をつける

おすすめ度
スタイル

BT