現在、多くのWebアプリケーションは、Ajaxと呼んでいる、一連の高度なJavaScriptの応用技術によって、リッチなユーザインタフェースを持っています。クライアント側でのプログラミングを行わず、プレーンなHTMLだけで構成されているものはほとんどなくなって来ています。そんな中、ここ最近は、さらに進化した、クライアントサイドのデスクトップアプリケーションとして動作するRIA技術が、注目されています。
すでにFlexでアプリケーション開発を経験しているのであれば、迷わずこちらを選択するでしょう。
未経験の場合は、MXML、ActionScriptという「独自言語」を習得しなければならないことが気になるところかと思います。それに関しては、HTML、XML、JavaScriptがわかっていれば、容易に習得できるので、あまり重要な条件ではないでしょう。
そういうことだけでなく、例えば、以下のようなことも考えた上で、総合的に判断することが必要です。
RIA技術の代表的なものとしては、以下の3つが挙げられます。
- Adobe AIR
- JavaFX
- Microsoft Silverlight
Adobe AIRのアーキテクチャを分類すると、以下の3パターンに分けることができます。
- Ajaxベース
- Flexベース
- Flashベース
- 開発言語
HTML + CSS + JavaScript - 実行環境
Adobe AIRランタイムに組み込まれている、WebKit HTMLエンジン上で動作する。 - 開発環境
- 無料で使えるもの
- Adobe AIR SDK + テキストエディタ
- Aptana Studio(Eclipse + Aptana用Adobe AIRエクステンション)
- 有料のもの
- Adobe Dreamweaver CS3+Adobe AIR Extension for Dreamweaver CS3
- 無料で使えるもの
では、「Flexベース」の方はどうでしょうか。こちらも、同じ観点で技術要素を整理してみます。
- 開発言語
MXML + ActionScript - 実行環境
Adobe AIRランタイムに組み込まれている、Adobe Flash Player 9の仮想マシンで動作する。 - 開発環境
- 無料で使えるもの
- Flex 3 SDK + テキストエディタ
- 有料のもの
- Adobe Flex Builder 3 Professional(Adobe Flex Builder 3.0.2 Professional Eclipse Plug-in)
- 無料で使えるもの
すでにFlexでアプリケーション開発を経験しているのであれば、迷わずこちらを選択するでしょう。
未経験の場合は、MXML、ActionScriptという「独自言語」を習得しなければならないことが気になるところかと思います。それに関しては、HTML、XML、JavaScriptがわかっていれば、容易に習得できるので、あまり重要な条件ではないでしょう。
そういうことだけでなく、例えば、以下のようなことも考えた上で、総合的に判断することが必要です。
- 現在、Ajaxベースで、効率の良い開発ができているか?
WebアプリケーションのAjaxに比べて、明らかにJavaScriptのコーディング量は多くなるので、そのあたりのことも考慮しておくべき。稼働環境が、AIRランタイムのWebKitエンジンに限定されるので、- クロスブラウザの考慮が必要ない
- AIRやFlushで用意されているAPIが使える。
- 要件として、Flashの機能が必要かどうか?
クールなGUIが要求され、それがFlashだと作りやすいのであれば、無理にAjaxでがんばるのは考えもの。 - 新しい技術にチャレンジする状況かどうか?
これには、プロジェクトの状況や、会社の方針、開発者の想いなど、いろいろな要素があるが。。。 - 有償の開発環境を導入できるか?
Flexの場合、SDK + テキストエディタベースで開発するには、熟練が必要と考えられる。Flex Builderを使った方が、効率よく開発できる。
すでに、Ajaxベースの開発で、高い技術を持ち、Flushテクノロジーを使わずに機能が実現できるのあれば、「Ajaxベース」を採用するのが自然な流れです。どうしてもFlushは採用できないという事情がある(AIRを前提で、そんなものはないと思いますが。。。)以外の場合には、楽に簡単にできそうな面があるのなら、Ajaxで無理をすることばかりを考えず、Flexの採用を検討してみてもいいかもしれません。
新しい技術にチャレンジする時は、できること、やりたいこと、必要なこと、コストなど、いろいろな角度から見て判断することが重要ですね。
コメントする