Flexでアプリケーションを構築した場合、Flash Playerをインストールしていないユーザーがアプリケーションを利用できないという問題があるのではないかと思われるかもしれません。しかし実際には、何年にもわたって、インターネットに接続されたコンピューターの98%にFlash Playerがインストールされているので、これは問題ではありません。
さらに大きな利点として、Flexを使用すれば、ブラウザー間のJavaScriptやCSSの実装の違いや、同じブラウザーの異なるオペレーティングシステムの間での違いに悩まされることがないのです。Flash Playerをターゲットにすれば、OSやブラウザーが異なっても一貫性のある結果が得られます。
それでは、コンテキストアプリケーションとは何でしょうか。コンテキストアプリケーションとは、「異なるオペレーティングシステム、プラットフォーム、デバイス、異なる、あるいは変化するネットワークタイプ、ユーザー固有の期待や好みなどに対して、表示とパフォーマンスを適合させる能力を持つことを特徴とする」ものです。
コンテキストアプリケーションのわかりやすい例としては、The New York TimesのTimes Readerが挙げられます(図4と5を参照)。これはFlexで作成されたAdobe AIRアプリケーションであり、デスクトップ、ノートブック、PC、タブレット、携帯電話機の上で動作します。オフライン動作もサポートされています(ニュースをローカルに保存して、接続していない状態で読むことが可能)。このアプリケーションには、コンテンツを画面のサイズに適合させる機能があります(列の数を増減したり、現在の画面のサイズに合わせてアクティブ画面から写真や記事を削除したりできます)。
![図4. HPのSlateタブレットで動作するTimes Reader](http://cz-cdn.shoeisha.jp/static/images/article/5294/4.jpg)
![図5. ノートブック上で動作するTimes Reader](http://cz-cdn.shoeisha.jp/static/images/article/5294/5.jpg)
最後に、携帯機器の世界について付け加えておきます。スマートフォンのユーザーは増え続けており、従来は有線接続のノートブックやデスクトップでしかできなかったことが、このようなデバイスでできるようになりつつあります。この流れは今後も止まることはないでしょう。遠くない将来、携帯デバイスからインターネットにアクセスするユーザーの数が、コンピューターからアクセスするユーザーを超えると見られます。このようなデバイス向けにアプリケーションを作成するには、どうすればいいでしょうか。実はこの作業は、控えめに言っても苦行に近いものです。それは誰の責任でもありません。たくさんの会社が様々なデバイスを製造している現状では、プラットフォームごとにやり方が違うのは当然のことです(Symbian、Web OS、BlackBerry、Android、Windows Mobile、iPhoneなど)。
2010年に、アドビは携帯デバイス向けのFlash Player 10.1とAdobe AIR 2をリリースします(最初のターゲットはAndroidとBlackBerryです。iPhone用には、次バージョンのFlash Professionalで、Flashアプリケーションをネイティブアプリケーションにパッケージ化できるようになります)。携帯デバイスに適したFlexフレームワークの開発作業が現在進行中です。これが完成すると、現在のFlexアプリケーションを携帯デバイス向けにも展開できるようになります。
FlexとAJAX
FlexとAJAXはどちらもクライアントサイドのテクノロジーであり、RIAの作成にも、既存のWebアプリケーションの強化にも利用できます。Flexの場合と同様、AJAXアプリケーションは初期応答がレンダリングされた後でサーバーに要求を行い、サーバーがその呼び出しに対する応答を返したら、応答を既存のページに挿入します。
FlexがFlash PlayerまたはAdobe AIR用のアプリケーションを構築するためのアプリケーションフレームワークであるのに対して、AJAXはJavaScript、HTML、CSSを含むテクノロジーと技法の集合を表す用語です。AJAXで作業する場合は、フレームワーク(Ext JS、Dojo、jQuery、Prototypeなど)を使用するのが普通です。その理由は、ブラウザーの間でのJavaScript/HTML/CSSの実装の違いに対処するためです。
ここまでの説明をふまえて、どのテクノロジーを選択するかは、あなた次第です。動的で型指定が弱いプロトタイプベースの言語がお好みの場合は、AJAXの方が気に入るでしょう。JavaScriptを知っていて、新たに別の言語を学びたくない場合は、やはりAJAXが最適です。型指定が強いOOP言語や最新のIDE機能を使用したい場合は、Flexをお勧めします。AJAXでできることに比べると(HTML 5の新しい追加機能を考慮しても)、Flex(およびFlash Player)のほうが柔軟性と機能の点では上であると思われます。ただし、どちらかが他方より優れているということはありません。どちらを選ぶかは、プロジェクトの性質やデベロッパーの経験によります。
実際に、両方のテクノロジーを使用して、どちらか一方だけでは不可能と思われることを実現している人々も大勢います。
FlexとPHPの組み合わせ
Flexはクライアントサイドのテクノロジーであり、PHPはサーバーサイドのテクノロジーです。どちらのテクノロジーも非常に成熟しています。ツール、フレームワーク、ライブラリなどが用意されており、あらゆる種類の作業やアプリケーションに関する記事やサンプルが見つかります。
どちらのテクノロジーもオープンであり、どちらも理解するためにかかる時間は最小です。FlexまたはAdobe AIR SDKと、PHPとviの組み合わせは無料で使用でき、ランタイム(Flash PlayerまたはAdobe AIR)およびWebサーバーとPHPの組み合わせについても同じことがいえます。
IDEを使ってコーディングするのに慣れている場合は、Flash BuilderとZend Studioを購入して、Flex+PHPプロジェクトのための強力な環境を構築できます(これらのIDEはどちらもEclipseをベースとしており、同じEclipseインスタンスに一緒にインストールできます)。
その結果得られるのは、テキスト、ビデオ、サウンド、アニメーション、ジェスチャー、マルチタッチを使用して、リッチユーザーインターフェイスを作成できること、リアルタイムのコラボレーション型アプリケーションを作成できること、OSやデバイス(コンピューター、スマートフォン、タブレットなど)の違いに関わらず同じテクノロジーとワークフローを使用できること・・・そして、それらすべてを楽しみながら実現できることです。
Adobe AIR Galleryに登録された優秀なAIRアプリケーションを決定するコンテスト、Adobe AIR Contest 2010が今年も開催されます。優秀作品には、Adobe MAX 2010(2010年10月/米国ロサンゼルス)への招待、Adobe Creative Suite製品のプレゼントが贈られます。登録締め切りは、2010年8月31日まで。【詳細はコチラ】