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を別途ダウンロードする必要があります。