JavaにおけるRIAの選択肢の1つとして.NETを使う!?

【特集】EclipseでJavaとXAML/WPFをつなぐ
フレームワーク


松原晋啓
2008/3/27

プログラマーも“デザイン”を意識する時代

今回の主な内容

プログラマーも“デザイン”を意識する時代
プログラマーのためのリッチクライアント技術とは?

WPFはプログラマー向けのリッチクライアント技術?

「eFace」でプログラマーは何ができるのか?
eFaceの開発はEclipseプラグインで無料でできる!
XAMLのデザインは別のツールを使うのがおススメ
何はともあれ、eFaceをサンプルで試してみよう
リッチクライアント時代のJavaプログラマーのために

 少し前まではシステム開発の現場において、ユーザーインターフェイス(以下、UI)デザインというのは重要であることは分かっていながらもそこまで重要視されることもなく、「機能」と「デザイン」を比較すると機能を選択するといった状況に甘んじていました。その状況をマーケティングでは「重要だが緊急ではない」状況といい、最も放置される状態だと指摘しております。

 しかし昨今では、このUIデザインを重要視する動きが高まり、さらにUIの上位に位置する「ユーザーエクスペリエンス」(UX)なる考え方も広まり、開発者も否応なくデザインを意識しなければならない時代になってきています。

 ただし、いままでデザインをほとんど意識することのなかった開発者にとって、センスうんぬんは別としてデザインに関する知識や経験があるわけもなく、それらも一朝一夕で身に付くようなものではないのが事実です(しかし米では、優秀なプログラマーとは開発もデザインも行えるような多才な人を指すようですが……)。

 では、そんな状況でもJavaプログラマーがお客さまに満足していただけるシステムを開発するためにどうすればいいか? その答えの1つを本稿で提示していきたいと思います。

プログラマーのためのリッチクライアント技術とは?

 さて、まずは数多くあるRIAリッチクライアント技術の中から、プログラマーにとって最適で(条件1)、さらに素晴らしいデザインや操作性を容易に生み出すことのできる(条件2)技術は何か? ということを考えてみましょう。

JavaにおけるRIA/リッチクライアント技術

 まずは、Javaにおける主なRIA/リッチクライアント技術を考えてみると、Adobe FlexAdobe AIR(以下、Flex/AIR)、AjaxSwingSWTEclipse RCPJavaFXCurlNexawebIdbAなどがありますが、この中で先ほどの2つの条件を実現できるのは、おそらくFlex/AIRではないでしょうか。

編集部注:RIA/リッチクライアント技術について詳しく知りたい読者は、記事「“リッチクライアント”に至るまでの軌跡と現在(いま)」をご覧ください。

 もちろん、ほかのテクノロジーも素晴らしいのですが、どうしても開発の延長でしかないため、今回のような真の意味での「RIA/リッチクライアント」からは残念ながら外れると考えます。Flex/AIRに関しては、さすがデザイナー向けにビジネスを展開している企業が提供する技術なだけに素晴らしいデザイン性能を実現しています。

 さらには、FlashをJava向けに最適化したFlexとの連携でJavaとの親和性も高いので、Javaプログラマーにとっては最適なテクノロジーであるといえると思います(参考「FlashはJava開発者のものに成りうるか」)

 ただ、1つ残念なのは視点があくまでデザイナーから端を発しているため、いままでシステム開発のみを行ってきたプログラマーにとってはどうしてもとっつきにくく、性能をフルに発揮するには相当の時間が必要となります。確かに、デザイナーとコラボレーションすることによって、素晴らしいRIA/リッチクライアントシステムができますが、本記事はプログラマーも容易に行えることを目指すため、その点での力不足は否めないと思います。

「eFace」で良い(いー)顔になる?

 それでは、扱えるテクノロジーがないではないか! と思われますが、それを解決したのがコードネームで「UPF(Universal Presentation Framework)」と呼ばれていた「eFace」フレームワークです。この「eFace」はJavaでXAMLWPFを扱うことを可能にした画期的なフレームワークです。

図1 「eFace」のページ
図1 「eFace」のページ

 本稿では、この「eFace」に焦点を当てて進めていきたいと思います。eFaceを紹介する前に、まずJavaプログラマーにはなじみがないと思われるWPFについて簡単に説明しておきます。

編集部注:XAML/WPFについて詳しく知りたい読者は、連載:XAMLの基礎知識をご覧ください。

WPFはプログラマー向けのリッチクライアント技術?

 WPFは、.NET Framework 3.0で追加された新機能の1つで、高度なUIデザインを実現するために特化したサブシステムです。

 Windows OSの描画APIである「Direct3DDirectX」を通して描画するため、GPUに描画処理を任せることが可能になり、CPUの負荷を軽減できます。ベクター/ラスター・グラフィックス3Dビデオオーディオ高品質テキストアニメーションなどさまざまなビジュアルを表現可能です。

編集部注:.NET Framework 3.0について詳しく知りたい読者は、記事「.NET Framework 3.0がもたらす価値とは?」を、Direct3DDirectXには、記事「DirectXの真実」を、ベクター/ラスターグラフィックスについては、記事「いまさら聞けないSVG、なぜ知られていないのか?」を、それぞれご覧ください。

 .NET Framewor k3.0上で動作するデスクトップ・アプリケーション構築にしか利用できない半面、Windowsクライアントの能力を最大限に発揮できます。ちなみに、マイクロソフトの技術には、ほかにもRIA/リッチクライアントに属する技術が多数存在します(図2)。

図2 マイクロソフトのリッチクライアント技術の種類
図2 マイクロソフトのリッチクライアント技術の種類

 XHTMLやAjaxはJavaでも活用できるのは当然のことですが、Windows VistaガジェットSilverlightも開発言語にJavaScriptが含まれますので、そのままJavaでも活用可能です。

編集部注:Silverlightについて詳しく知りたい読者は、記事「Silverlightは次世代のJavaScriptフレームワーク?」をご覧ください。

 しかし、WPFはWindowsにおける最も優れた表現力を持ちながらも.NET Frameworkという枠の中でしか使用できなかったため(だからこそ、Windowsクライアントに対して最高レベルのRIA技術となっているのですが)、その恩恵をJavaで享受できませんでした。

WPFが生まれてきた背景

 では、WPFがなぜプログラマーに有利なのでしょうか? それは、WPFが生まれてきた背景にあります。

 マイクロソフトとは、ご存じのとおり、.NETを擁する企業で、完全にプログラマー向けの企業です。その企業がプログラマーに対してRIA/リッチクライアントの波を乗り超えるために開発した技術がWPFなのです。

 もちろん、システム開発の現場においてはデザイナーとのコラボレーションも重要なので、デザイナーのことを考えられていますが、やはりそこから生み出される言語もツールもプログラマーにも親しみやすい設計となっています。

 そのあたりは後述しますので、まずはこれだけでも覚えておいてください。後は、「新しいイテレーション型開発」にも詳しい解説がありますので、参考にしてみてください。

 次ページからは、eFaceの特徴とEclipseプラグインの使い方などを解説していきます。

  1-2-3

 INDEX
Page1
  プログラマーも“デザイン”を意識する時代
プログラマーのためのリッチクライアント技術とは?
WPFはプログラマー向けのリッチクライアント技術?
  Page2
  「eFace」でプログラマーは何ができるのか?
eFaceの開発はEclipseプラグインで無料でできる!
XAMLのデザインは別のツールを使うのがおススメ
  Page3
  何はともあれ、eFaceをサンプルで試してみよう
リッチクライアント時代のJavaプログラマーのために


Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間