JavaにおけるRIAの選択肢の1つとして.NETを使う!?
【特集】EclipseでJavaとXAML/WPFをつなぐ
フレームワーク
松原晋啓
2008/3/27
プログラマーも“デザイン”を意識する時代
少し前まではシステム開発の現場において、ユーザーインターフェイス(以下、UI)デザインというのは重要であることは分かっていながらもそこまで重要視されることもなく、「機能」と「デザイン」を比較すると機能を選択するといった状況に甘んじていました。その状況をマーケティングでは「重要だが緊急ではない」状況といい、最も放置される状態だと指摘しております。
しかし昨今では、このUIデザインを重要視する動きが高まり、さらにUIの上位に位置する「ユーザーエクスペリエンス」(UX)なる考え方も広まり、開発者も否応なくデザインを意識しなければならない時代になってきています。
ただし、いままでデザインをほとんど意識することのなかった開発者にとって、センスうんぬんは別としてデザインに関する知識や経験があるわけもなく、それらも一朝一夕で身に付くようなものではないのが事実です(しかし米では、優秀なプログラマーとは開発もデザインも行えるような多才な人を指すようですが……)。
では、そんな状況でもJavaプログラマーがお客さまに満足していただけるシステムを開発するためにどうすればいいか? その答えの1つを本稿で提示していきたいと思います。
プログラマーのためのリッチクライアント技術とは?
さて、まずは数多くあるRIA/リッチクライアント技術の中から、プログラマーにとって最適で(条件1)、さらに素晴らしいデザインや操作性を容易に生み出すことのできる(条件2)技術は何か? ということを考えてみましょう。
■ JavaにおけるRIA/リッチクライアント技術
まずは、Javaにおける主なRIA/リッチクライアント技術を考えてみると、Adobe Flex/Adobe AIR(以下、Flex/AIR)、Ajax、Swing/SWT/Eclipse RCP、JavaFX、Curl、Nexaweb、IdbAなどがありますが、この中で先ほどの2つの条件を実現できるのは、おそらくFlex/AIRではないでしょうか。
編集部注:RIA/リッチクライアント技術について詳しく知りたい読者は、記事「“リッチクライアント”に至るまでの軌跡と現在(いま)」をご覧ください。
もちろん、ほかのテクノロジーも素晴らしいのですが、どうしても開発の延長でしかないため、今回のような真の意味での「RIA/リッチクライアント」からは残念ながら外れると考えます。Flex/AIRに関しては、さすがデザイナー向けにビジネスを展開している企業が提供する技術なだけに素晴らしいデザイン性能を実現しています。
さらには、FlashをJava向けに最適化したFlexとの連携でJavaとの親和性も高いので、Javaプログラマーにとっては最適なテクノロジーであるといえると思います(参考「FlashはJava開発者のものに成りうるか」)。
ただ、1つ残念なのは視点があくまでデザイナーから端を発しているため、いままでシステム開発のみを行ってきたプログラマーにとってはどうしてもとっつきにくく、性能をフルに発揮するには相当の時間が必要となります。確かに、デザイナーとコラボレーションすることによって、素晴らしいRIA/リッチクライアントシステムができますが、本記事はプログラマーも容易に行えることを目指すため、その点での力不足は否めないと思います。
■ 「eFace」で良い(いー)顔になる?
それでは、扱えるテクノロジーがないではないか! と思われますが、それを解決したのがコードネームで「UPF(Universal Presentation Framework)」と呼ばれていた「eFace」フレームワークです。この「eFace」はJavaでXAML/WPFを扱うことを可能にした画期的なフレームワークです。
図1 「eFace」のページ |
本稿では、この「eFace」に焦点を当てて進めていきたいと思います。eFaceを紹介する前に、まずJavaプログラマーにはなじみがないと思われるWPFについて簡単に説明しておきます。
編集部注:XAML/WPFについて詳しく知りたい読者は、連載:XAMLの基礎知識をご覧ください。
WPFはプログラマー向けのリッチクライアント技術?
WPFは、.NET Framework 3.0で追加された新機能の1つで、高度なUIデザインを実現するために特化したサブシステムです。
Windows OSの描画APIである「Direct3D/DirectX」を通して描画するため、GPUに描画処理を任せることが可能になり、CPUの負荷を軽減できます。ベクター/ラスター・グラフィックス、3D、ビデオ/オーディオ、高品質テキスト、アニメーションなどさまざまなビジュアルを表現可能です。
編集部注:.NET Framework 3.0について詳しく知りたい読者は、記事「.NET Framework 3.0がもたらす価値とは?」を、Direct3D/DirectXには、記事「DirectXの真実」を、ベクター/ラスターグラフィックスについては、記事「いまさら聞けないSVG、なぜ知られていないのか?」を、それぞれご覧ください。
.NET Framewor k3.0上で動作するデスクトップ・アプリケーション構築にしか利用できない半面、Windowsクライアントの能力を最大限に発揮できます。ちなみに、マイクロソフトの技術には、ほかにもRIA/リッチクライアントに属する技術が多数存在します(図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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|