BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JavaFX: デスクトップと携帯端末のためのクライアントサイドJava

JavaFX: デスクトップと携帯端末のためのクライアントサイドJava

ブックマーク

JavaFXが5月のJavaOneで初めて発表されて以来、Javaにおけるクライアントサイドのユーザエクスペリエンス向上に焦点をあてた活動が、にわかに活発になった。

SunのSwing Toolkitチームに所属するJoshua Marinacci氏(サイト・英語)は最近、JavaFXを構成していると考えることのできる一連の技術をアピールし、JavaFXイコールJavaFX Scriptではないことを強調していた。

JavaFXのマーケティング上の定義は、リッチなユーザエクスペリエンスを生み出すための製品とテクノロジの集合だ。

では、マーケティングを抜きにすれば、JavaFXとは何なのか?それは、私たちがクライアントサイドに、そしてユーザに焦点を合わせた多くの新しいものを作り出しているということを意味している。作り出しているものとは、見栄えの優れた新しいアプリケーションを開発するための新技術でもあるし、既存の技術をよりよいものに改善することでもある。JavaFXは、私たちが未来のアプリケーションを構築することができるようにするための基本となる機能である。私はここで、ユーザインターフェースという言葉よりも、ユーザエクスペリエンスという言葉を使いたい。なぜなら、ユーザエクスペリエンスという言葉には、単なるGUIコンポーネントとよい見栄え以上のものがあるからだ。そこにはJavaをインストールする経験、Javaのアプリを実行する経験、ソフトウェアのアップデートを行う経験までもが含まれる。要するに速度と信頼性だ。そして、開発時の経験だけでなく、実行時の経験も含んでいる。UIウィジェットも重要だが、これら全てがあなたの製品を利用するユーザの経験の重要な一部分なのである。

彼はJavaFXに含まれる技術を次のように項目分けしている。

  • JavaFX Script
  • Designer and Developer Tools
  • JavaFX Mobile
  • The Consumer JRE (including: deployment toolkit, new installer, java kernel, quick starter, media, nimbus)

InfoQはこれらおよびその他のトピックについてJoshua Marinacci氏にインタビューした。

JavaFX Script

JavaFX ScriptはクライアントサイドJavaアプリケーションを構築する新しい方法として順調に前進している。 最近のJavaFXチュートリアルは、基本的な(source)コンセプト(source)や2Dベクタ画像描画用のキャンバス(source)、そしてRMI(サイト・英語)とJAX-WS(サイト・英語)とを使ったクライアント/サーバコミュニケーションを紹介し、グラフィカル的にリッチなWebページ(source)を再現していた。

ツールもまたJavaFXPadデモ(サイト・英語)とJFXBuilder(サイト・英語)からJavaFX Script NetBeansプラグイン(サイト・英語)へと進化を続けている。

JavaFX Scriptはまだ実用できる段階ではなく(source)、今のところ速度もすこし遅い(source)のだが、作業は今まさに進行中である。とはいっても、JavaFX Scriptは十分成熟しているJavaのクライアントサイド技術の上に構築されているのだが。

JavaFX Script(JavaFXの一部分)はまだ開発の初期段階であり、幅広く利用されるための準備はまだ整っていない。まだ開発途中なので、私は、誰かがこれを製品に使って発表して欲しいとは思っていない。しかし、JavaFX Scriptは要するに成熟したJavaSEスタックのリッチな機能にアクセスする新しい手段である。早くて安定したランタイム上で多くの高品質なオープンソースライブラリを手にし、多くの異なる言語で開発を行うことができる。特に、強力なサーバサイドJavaアプリケーションを使って簡単に作業を進めることが可能だ。

Designer and Developer Tools

JavaFXには、すでに述べたJavaFX Scriptに加えて、デザイナーとデベロッパーをターゲットにした別のツールが含まれる。

私たちはデザイナー用に新しいツールセットを作っている。もちろん私たちの他のツールとコードを共有することにはなるだろうが、単なるNetBeansのモジュールなどではない。デザイナーとコンテンツクリエイターを特に対象としたフルセットのツールだ。IDEよりもFlashのほうに近い。私たちは恐らくNetBeans GUI Builder(旧名Matisse)にもFXのサポートを追加することにはなるだろうが、それは純粋なデザイナーツールとは異なる。自分にとってこの新しいデザイナー用製品の開発チームにいるのは本当にエキサイティングだ。私たちはそこで作業する優秀な人たちに出会い、多くの素晴らしいアイデアを得た。この技術には多くの人が胸を躍らせてくれるだろうと思っている。

デベロッパー用には、オープンソースプロジェクトとして完成している本格的なコンパイラと同様、Java.netでNetBeansのプラグインを開発している(現在、α版を見ることができる)。私たちはもちろんコンパイラとNetBeansをうまく統合させるつもりだが、コンパイラはIDEとは別々に動作するように設計されている。

JavaFX Mobile

JavaFX Mobile(サイト・英語)は、モバイルデバイスのOSからフレームワークやアプリケーションにまでおよぶ完全なスタックを提供するためにSunがSavaJe(サイト・英語)から買収したスタックの上に構築されている。

JavaFXの(JavaFX Mobileの、ではない)ゴールのひとつは、プラットフォームの分裂に終止符を打つことだ。
私たちは、Javaが分裂しているのはよくないことだと常々言ってきた(当たり前だが)。そしてそれが、私たちがJavaのオープンソース化に非常に慎重だった理由である。Javaを分裂のない状態に保ち続けることは、Javaのエコシステム上、恐らく最も重要なことだ。もしそれが真実だとするなら(私はそう信じている)、デスクトップとサーバのJavaが統一される中でモバイル環境だけが取り残されるのは合理的ではない。

  1. JavaFX Mobileは完全なモバイルスタックであり実装である。ただの仕様の集合ではなく、実際の実装をひとつ含んでいる。基本的にはOS全体とアプリとAPIが全てJavaで書かれており、唯一、カーネルといくつかのデバイスドライバのみC言語で記述されている。
  2. システムをその場でアップデートできる。モバイル市場がバグフィックスや最新機能を欠いた古い実装によって分断されることはもうなくなるだろう。どのデバイスも同じバージョンのプラットフォームを用いることができるようになる。
  3. JavaFX Mobileはハイエンド機器用にデザインされている。これはつまりJavaSEの能力に近づくということだ。

三番目が最も重要だ。私たちの長期的なゴールはJavaSEとJavaMEをひとつに収斂させること。そこでは開発者は複数のAPIを知る必要はない。Javaはひとつしか存在しない。

Joshは、どのキャリアがJavaFX Mobileのデバイスをオファーリングする可能性があるかには言及しなかったが、Google Phoneの噂に対して「私は他の人と同じくらい熱心に噂サイトを読んでいる」とコメントしており、iPhoneのインパクトに関する洞察を披露している。

ひとつだけ言っておこうと思う。JavaFX MobileがどうやってAppleのiPhoneと戦うのかよく疑問視される。iPhoneは実際はJavaFX Mobileにとって素晴らしいものだ。あなたがAppleとの独占的な取引を得られなかった携帯電話メーカーかキャリアであると仮定しよう。もしあなたがiPhoneライクなデバイスを作りたいとしても、AppleはOSやアプリを販売してあなたを助けるようなことはしないだろう。でもSunは違う。今後数年にわたって、モバイル世界は今までよりずっとエキサイティングになりそうだ。

Consumer JRE

Cunsumer JRE(source)は最近はじめてのプレビューリリース(サイト・英語)が登場したばかりで、それ自体がこれまでとはまた別のひとつの技術クラスタとなっている。中にはNimbus(source)ルックアンドフィールが含まれている。

Cunsumer JREは、たまたまJavaで書かれたアプリケーションを利用することになったコンシューマーを助け、現時点で可能な水準よりも一層合理的で手間のかからない方法で利用を始めることができるようにしてくれる。また、クイックスタートのメカニズムとハードウェアの高速化によって、Javaはこれまで以上の速度で応答を返してくれるようになるだろう。

あまり理解されていないが、重要なことは、JavaFXの一部分がJava SE 6 Update Nであるということだ(Java SE 6 Update Nは、以前はプロジェクトHamburg、さらに以前はConsumer JREと呼ばれていた)。これは、インストールやデプロイのエクスペリエンスの劇的な向上を含んだJavaSE 6のニューリリースである。インストールやデプロイというとつまらなく聞こえるかもしれないが、それはユーザがJavaのアプリを使い始めるときやインストールするときに最初に体験することなので、非常に重要だ。まもなくJavaSEに訪れる変更は、JavaFXスタックの先端で目にすることのできる、一層クールな多くの機能の土台となるものだが、仮にJavaFXの他の機能を何も利用しなくても、それだけでも有用なものである。Java SE 6の最初のアップデートリリースは来年春に公開される予定なので期待していてほしい。

最後に、Nimbusルックアンドフィールおよびメディアの統合はJavaのエクスペリエンスをリッチで愉快なものにしてくれるだろう。

私の理解では、メディア(具体的に言うとビデオ)を扱うにあたって最大のチャレンジは法的なものであって、技術的なものではないので、Javaが速くないとか十分に強力ではないという問題ではない。新しいメディアサポートの最初のバージョンではプレイバックとフレームグラバーをサポートするはずだ。この二つで、通常Web上で求められるクールな効果は大体実現できる。私たちは、Quicktimeのような完全な編集用APIは作成していないが、利用者は基本的なことをとても簡単に実現できるようになるだろう。

というわけで ...

現在進行中であるこれら全ての野心的な計画によって、SunとJavaは未来のメディアリッチでデラックス感をもったデスクトップアプリケーションの分野で重要な成果を生むことができるのだろうか?それとも、クライアント上のJavaはすでに訪れそして過ぎ去ってしまった夢なのだろうか?Josh はこれらの取り組みの信頼性について語る。

Sunは企業のクライアントサイド領域に取り組み、非常にうまくいっている。たくさんの大企業がSwingベースの課金や販売システムを使っているのに皆驚いているだろう。Sunは以前(少なくともここ10年)はコンシューマ向けのクライアントサイドを一度も追いかけたことがなかったが、今、私たちはそれを追いかけている。

私たちの言葉を信じて欲しいとは言わないけれども、代わりに、私たちが実際にやっていることを見てくれるようお願いしたい。JDK 7の開発ビルドをじっくり試してほしい。まもなく新しいJava SE 6アップデートのベータに導入される新しいデプロイ機能を見てほしい。JavaFX Scriptで遊んでみてほしい。NetBeansのGUI builderを使って欲しい。私たちはクライアントサイドに真の変化を作り出している。Sunはサーバの企業であってクライアントサイドでの信頼性はないと感じる人たちがいることは知っているし、だからこそ、実際の行動や発表する製品を見て欲しいと考えている。これが大きな変化であることには同意するけれど、世界は常に変化している。Webは5年前とは違ってきているし、モバイルの世界は大きな変革の最中にある。全てが変化しているのだ。もちろんSunも。

さらに詳しい情報を知りたい方はOpenJFXプロジェクト(source)に参加して、JavaFXに関するJoshの投稿(source)を見てほしい。そして引き続きInfoQのJavaコミュニティ(source)をチェックしてほしい。

原文はこちらです:http://www.infoq.com/news/2007/10/javafx-client-side-java

この記事に星をつける

おすすめ度
スタイル

BT