SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Adobe Developer Connection(AD)

Adobe Flexに関してありがちな10の誤解

Flexにありがちな誤解を解説

  • X ポスト
  • このエントリーをはてなブックマークに追加

 この記事では、Adobe Flexに関してありがちな10の誤解を紹介し、順に解説していきながらAdobe Flexの本質について触れていきたいと思います。

  • X ポスト
  • このエントリーをはてなブックマークに追加

本稿は当初2007年12月、InfoQ.comに掲載されたものです。

1. ユーザがFlexアプリケーションを実行するには、何かを新たにインストールしなければならない

 Flex 2およびFlex 3で必要なのは、Flash Player 9です。現在、Flash Player 9ランタイムは世界中のコンピュータの94%にインストールされています。

 Flex 2およびFlex 3のアプリケーションは、Flash Player 9で実行されます。Flexアプリケーションは、ベクトルグラフィクスやビットマップ操作、(ブラウザのネットワーキングスタックをベースにした)ネットワーキングなど、ネイティブのFlash Player API上に構築されます。そして、Flexフレームワークによってカレンダやデータグリッド、各種チャートなどの再利用可能なコンポーネントが提供されます。

編集部注1

2009年9月現在での、Flash Player 9の普及率は99%、Flash Player 10は94%。

 Flexアプリケーションをコンパイルすると、Flash Playerのバイナリコード形式であるSWFファイルが生成され、このSWFファイルには、Flexフレームワークのバイトコードと各プロジェクト固有のカスタムコードが含まれます。コンパイル時にはFlexコンパイラがバイトコードを最適化するため、実際に使用されているクラスのみがSWFファイルへと収録されます。

 また、アドビではデスクトップアプリケーション向けにAdobe AIRを開発しており、このデスクトップランタイムを、Webランタイム同様に普及させることが目標として掲げられています。Adobe AIR 1.0は、2008年初旬に提供開始の予定であり、現在はlabs.adobe.comにてベータ版がリリースされています。

編集部注2

2009年11月、Adobe AIR 2のベータ版の提供が開始された。 
Adobe、「Adobe AIR 2」ベータ版および「Flash Player 10.1」プレリリース版を公開(CodeZine)
Adobe AIR 2.0 Beta(Adobe)

Adobe AIRを利用して、既に本稼働用アプリケーションの開発を手がけている企業は少なくありません。例えばeBayのアプリケーション、eBay Desktopが一例として挙げられます。

2. Flash Playerは100%クローズドソースである

 Flash Playerの中核を担うのが、Mozilla管轄下のオープンソースプロジェクトであるTamarin Virtual Machineです。SWFのファイル規格は完全にオープンではないものの、コミュニティの協力によりosflash.orgにて文書化されています。また、SWFファイルを読み書きできるオープンソース製品は多数存在します。

 製品としてのFlash Playerの方向性は、以前から、コミュニティとそのニーズに多大な影響を受け続けてきました。Flash Playerのコア言語は、JavaScriptの規格としても知られるECMAScript 262の実装です。また、Flexではコンポーネントやアプリケーションのスタイリング手段としてCSSが採用されています。さらに、Adobe AIRでは、デスクトップアプリケーションの基盤としてWeb標準が用いられているとともに、Tamarin、Webkit、SQLiteなどのオープンソーステクノロジも利用されています。

3. Flashはデザイナー、ビデオ、あるいは嫌がらせに適している

 Flashの提供するパワーが、乱用されかねないことは否定できません。ポップアップやポップオーバー、イントロスキップ、目障りな広告などが雑然とスクリーンに表示されることがあります。しかし筆者は、宗教をその乱用例をもって判断すべきではない、という言葉を聞いたことがあります。この格言はテクノロジにも当てはまるのではないでしょうか。つまり、一部で目障りな使われ方が存在するからといって、Flash自体が避けられるべきではありません。これは、迷惑メールとして電子メールを乱用する者がいるからという理由で、電子メール自体を敬遠するのと同じことです。

 Flashコンテンツは従来、デザイナー向けのタイムラインベースのツールで制作されていましたが、Flexは、デベロッパーがFlashベースのコンテンツ・アプリケーションを開発することを可能にするツールセットです。デザイナーとデベロッパーは、この2つのツール間でアセットを共有し、共同で作業を進めることができます。また、Flexには充実したコンポーネントベースが用意されています。詳しくは以下のリンク先を参照してください。

4. Flexはエンタープライズやビジネスアプリケーションに向かない

 過去数週にわたって筆者は、Adobe Flexで実現されたOracleの最新アプリケーション群について、7回連載のブログシリーズを公開しました。近頃開催されたOracle OpenWorldにて発表されたこれらのアプリケーションには、営業支援ツールから、データベース管理、ビジネスインテリジェンスに至るまで、さまざまなジャンルのものが含まれています。

 OracleのFlex使用事例以外にも、InfoQ.comには、エンタープライズアプリケーションでFlexを利用する組織を紹介する記事が掲載されています。また、筆者はInfoQ.comに対し、Workday、SAP、SalesforceおよびBusiness Objectsなどの企業において、Adobe Flexで開発中のエンタープライズアプリケーションが多数存在することも指摘しています。

5. Flexは高価である

 無償で利用でき、しかもまもなくオープンソース化されるFlexは、Webおよびデスクトップ向けのリッチインターネットアプリケーション開発を可能にする、デベロッパー用のツールキットです。この無償SDKには、デベロッパーが、どのブラウザやオペレーティングシステムでも同様に動作するRIAを開発するために必要なすべてが含まれています。無償のFlex SDKには、その一環として拡張とスキン変更にも対応でき、しかもアクセシブルな、コンポーネント群が用意されています。これらのコンポーネントの多くは、Flexコンポーネントエクスプローラでチェックできます。

 無償のFlex SDKを使用したアプリケーション開発を、より効率的に行えるようにするのが、EclipseのオプションプラグインでもあるFlex Builderです。Flex Builderには統合型のデバッギング、デザインビューおよびコードの自動補完といったさまざまな機能が含まれています。

 近頃、Flex Builderの価格体系が改定されました。学生や教員の方はFlex Builderを無償で利用することができます。また、チャートコンポーネントを含まないFlex Builder Standardの価格は、段階的なFlex Builder価格体系の導入にあわせて31,500円まで値下げされています(無料体験版ダウンロードはコチラ)。

 Flexアプリケーションのバックエンドインフラを構築するための選択肢には、さまざまなものがあります。高性能なAMFデータ転送プロトコルの恩恵を享受できるよう、Javaベースのアドビ製品であるLiveCycle Data Servicesとそのオープンソース版のBlazeDSが用意されています。また、他のバックエンドシステム用としては、複数のオープンソースプロジェクトが存在します。AMFを利用すれば、データをテキスト形式(SOAP、RESTfulなど)に変換し、転送後、データへと再変換するといった無駄な処理が省けます。また、AMFの場合、転送処理時に型情報を維持しておくことも可能です。

 AMFと他のテキストベースのシリアライズテクノロジの性能比較については、筆者が開発したCensus RIA Benchmarkアプリケーションを参照してください。

6. Flexアプリケーションには特殊なサーバが必要である

 Flexアプリケーションは、あらゆるWebサーバ、アプリケーションサーバおよびデータベースサーバ上で実行でき、むしろ、クライアント/サーバアプリケーションのような存在です。FlexアプリケーションのロジックはFlash Player内のクライアント側で実行されるため、サーバとの通信手段が必要となります。Flexを、ご利用中のインフラへと接続するための選択肢は多数あります。例えば、バックエンドのデータやサービスを特別なライブラリを用意することなくRESTful、XMLまたはSOAPで公開し、Flexアプリケーションでこれらのデータを手軽に利用することができます。

 なお、バイナリ形式のシリアライゼーションプロトコルのAMFを使用する場合は、Webアプリケーションに追加ライブラリを実装しなければならないことがあります。AMFはXMLやJSONと同類のシリアライゼーションテクノロジであり、数多く用意されているバックエンドSOA(サービス指向アーキテクチャ)との通信手段の1つとして利用することができます。

7. Flexを習得するのは大変である

 InfoQ.comコミュニティで活動するLeftie Friele氏は、InfoQ.com掲載の「Who is Using Flex?」記事の中で、自社におけるFlex習得経験の詳細を次のように語っています。

 我々が立ち上げたスタートアップカンパニーのEzmoでは、登場初期からFlexを使用していますが、このフレームワークには大変満足しています。

 FlexやFlashの予備知識がなかったにもかかわらず、アプリケーションを2週間弱で構築することができました。また、JavaとFlexの統合も非常に簡単であったため、Flexにはスムーズに入っていくことができました。

 ツールサポートの面でも、Flex Builderに大変満足しています。Flex Builderは使い慣れたEclipse同様の開発環境を提供するので、問題なく開発作業に打ち込めます。欠けているものがあるとすれば、総合的な統合のためのより良いツールと、Flexアプリケーション開発時におけるMavenへのより優れたプラグインぐらいでしょう。

 筆者は、Flex初心者がスムーズに開発作業を始められるよう、実際のFlexアプリケーション開発状況を収録したスクリーンキャストを用意しています。また、Adobe Developer Connectionには、FlexおよびJavaの使用法に関して数多くの記事が掲載されています(Flex初心者のためのCodeZine特集ページはコチラ)。

8. Flexを使用する場合、アプリケーションをいちから作り直さなければならない

 去る1月、Bruce Eckel氏は「Hybridizing Java」(Javaのハイブリッド化)と題した記事を発表し、この中で、Javaが長所である部分ではJavaを使い、Javaが弱点となる部分では他のテクノロジを使用すべきだと述べています。この記事で注目されているのは、ユーザインターフェイスに、Javaが提供する従来の選択肢(Swing、JSFなど)ではなく、Adobe Flexを使用することです。

 このコンセプトを解説すると次のようになります。

 つまるところ、FlexアプリケーションはアプリケーションのUI部分にすぎないため、通常、バックエンドに大幅に手を加える必要はありません。バックエンドがSOAパターンに基づいて構築されていれば、通常の場合、これらのサービスを新しいFlex UIに対して公開するのはとても簡単です。つまり、EJBやSpringサービス、POJOといった形式の既存ビジネスロジックを従来通りに維持することができます。

9. Flexでは、「戻る」ボタンなどの通常のブラウザ機能が利用できない

 以下は、筆者のブログの「戻る」ボタンに関する考察からの抜粋です。

 Flexには「戻る」ボタンのサポートが内蔵されているだけでなく、この機能を容易にカスタマイズすることもできるので問題ありません。Flexでは、シャープ記号付きのURL(名前付きアンカー)にも対応でき、アプリケーションのステート変化にあわせてURLを変化させることも可能です。これにより、Web 1.0の統合に関連した問題が、また1つ解決されます。

筆者によるさらに詳しい解説

 Flex 3には、アプリケーションがステートパラメータを名前付きアンカーに保存し、そしてURLがリクエストされた時点で、これらのパラメータに基づいて適切なステートを手軽に復元する仕組みも用意されています。この機能について詳しくは、Flex 3 Feature Introductionsドキュメンテーションの「Deep Linking」の節を参照してください。

 Flexアプリケーションでは、アクセシビリティも重視されています。Flash PlayerはJawsをはじめとする各種アクセシビリティテクノロジに対応できるため、アクセシビリティをFlashベースのアプリケーションに実装することも可能です。また、Flexフレームワークにはアクセシビリティがコアフレームワークに組み込まれています。アプリケーションに必要なアクセシビリティ要件に応えられるよう、さまざまなアクセシビリティ機能群が用意されています。Flexのアクセシビリティ関連機能について詳しくは、『デベロッパーガイド』を参照してください。

10. Flexでできることは、すべてAjaxでもできる

 FlexのRIAとAjaxのRIA。どちらかを選ばなければならない、というわけではありません。Google Financeなどのサイトをチェックすれば、FlexとAjaxがいかに手を取り合えるかが分かります。Ajaxはコンテンツ中心のアプリケーションに適す一方で、Flexはインタラクティブかつメディアが豊富なデータ中心のアプリケーションに適しています。

 開発したいアプリケーションが両者の合間に属する場合は、Flex Ajax Bridgeを利用して2つのテクノロジを組み合わせることも可能です。なお、Flex 3ではFlex Ajax BridgeがSDKに組み込まれていますが、Flex 2を使用する場合は、Flex Ajax Bridgeを別途ダウンロードする必要があります。

「FlexではじめるRIA開発」特集、絶賛公開中!

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4627 2010/03/25 14:33

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング