gihyo.jp » DEVELOPER STAGE » 連載 » ついにベールを脱いだJavaFX » 第1回 JavaFXの概要と基本

ついにベールを脱いだJavaFX

第1回 JavaFXの概要と基本

2008年12月4日(米国時間),とうとうJavaFXがリリースされました。2007年のJavaOneで発表されて以来1年半,やっとリリースまでこぎつけました。そこで,このたびリリースされたJavaFX 1.0をベースに,短期集中連載としてJavaFXを解説していきます。

JavaFXとは何だ

JavaFXはSun Microsystems(以下Sunと表記します)が提供するリッチクライアント向けの新しいプラットフォームです。Javaという名前が入っていますが,Javaとは別個のプラットフォームです。とはいうものの,技術的にはJavaがベースになっています。

JavaFXの開発はオープンソースで行われています。java.netのOpenJFXプロジェクトを中心に,OpenJFX-CompilerプロジェクトSceneGraphプロジェクトなどで精力的に開発が行われています。ただし,現状ではすべてのソースが公開されているわけではないようです。

JavaFXは,2007年にサンフランシスコで行われたJavaOneで発表されました。当初は,RIA(Rich Internet Application)向けという面が強調されていましたが,RIAに限らずさまざまなユーザインターフェースを構築することができます。たとえば,JavaのGUIのAPIであるSwingを用いて作成されたアプリケーションの一部だけをJavaFXで構築する,ということも可能です。

前述したようにJavaFXはJavaの技術をベースに構築されているため,Javaとの相性がよく,Javaの多様なAPIをシームレスに使用することもできます。

JavaFXがカバーする領域

JavaFXはデスクトップPCで動作するアプリケーションだけでなく,携帯電話をはじめとしたさまざまな領域をカバーしています。JavaFXはJava VM上で動作します。Java SEのJava VMだけでなく,Java MEのCLDC(Connected Limited Device Configuration)やCDC(Connected Device Configuration)でも動作させることが可能です。このため,携帯電話やスマートフォン,セットトップボックスなどでもJavaFXを動作させることができます。また,Blu-rayプレイヤで採用されているCDCをベースとしたBD-Jも,JavaFXがカバーする領域になります。CLDCを採用しないGoogle Androidでも,2008年のJavaOneにおいてJavaFXを動作させるデモが行われました。

このようにさまざまな領域をカバーしているJavaFXですが,それぞれの領域において,アプリケーションの作成方法が異なるというのでは,開発効率も上がりません。そこで,開発されたのがユーザインターフェースの構築に特化されたスクリプト言語であるJavaFX Scriptです。JavaFX Scriptを用いることで,かつてJavaが謳っていた“Write Once, Run Anywhere”をもう一度実現することができるのです。

JavaFXの開発史

もともとJavaFXは,SeeBeyond社のChristopher Oliver氏の個人的なプロジェクトとして開始されました。その当時はJavaFXではなく,Form Follows Function(F3)という名前でした。

2005年9月にSunがSeeBeyond社を買収したことで,F3はSunの技術資産になりました。その後,Oliver氏は2006年11月にブログを開設し,そこでF3を公開しました。その当時のF3はJava SEのSwingおよびJava 2Dに依存しており,デスクトップでしか動作できませんでした。しかし,携帯電話を中心にした組込み用途でもF3を動作させることは重要です。そこで採られた戦略が,SavaJe社の買収でした。これはJavaOne 2007の直前,2007年4月のことになります。

通常,携帯電話ではCLDCを動作させますが,SavaJe社では携帯電話向けのCDCを開発していました。CDCではJSR 209 Advanced Graphics and User Interface Optional Package for the J2ME PlatformによりSwingとJava 2Dを動作させることが可能です。そこで,CDCとJSR 209をベースに組込み用途向けのJavaFXが構築されました。

そして,JavaOne 2007でF3はJavaFXと名前が変更され,大々的に発表されたのでした。

JavaOne 2007ではもともとF3のセッションが組まれており,それほど注目を受けているわけではありませんでした。ところが,初日のジェネラルセッションでJavaFXが発表され,F3のセッションもJavaFXのセッションに変更になりました。そして,JavaFXのセッションは大入り満員。セッションに入れなかった人も多数おり,最終日に同じ内容をもう一度行うアンコールセッションも組まれたほどでした。

JavaOneで発表された直後に,OpenJFXプロジェクトが開始されJavaFXのSDKが公開されました。

この時に公開されていたJavaFXはインタープリタで動作しました。つまり,起動時にスクリプトが解釈され,Javaのクラスに変換,コンパイルを行ってから動作するという流れになっていました。このため,どうしても起動時間が長くなってしまうという欠点があったのです。

そこで,毎起動時に行っていたコンパイルを事前に行う,コンパイラ方式が採用されました。このコンパイラを開発するためにOpenJFX-Compilerプロジェクトが2007年7月に開設され,同時にGUIコンポーネントもSceneGraphプロジェクトで開発されることになったのです。その後,デスクトップ向けのJavaFX DesktopのプレビューSDKが公開されたのが今年の7月。もちろん,コンパイラ方式で動作するものです。

そして12月4日,JavaFX Desktop 1.0を含む JavaFX SDK 1.0 がリリースされました。また,JavaFX SDKには組込み用途向けのJavaFX Mobileのベータ版も含まれています。

なお,2007年に公開されていたインタープリタ版と今回のコンパイラ版では,文法やAPIなど多くの部分が変更されています。また,Preview SDKと正式版でも一部APIが変更になっているので注意が必要です。これらの変更点については,本連載の最後に付録にまとめますので,参考になさってください。

著者プロフィール

櫻庭祐一(さくらばゆういち)

横河電機に勤務するかたわらJava in the Boxにて新しい技術を追い続けています。JavaOneは今年で11年目。名実共にJavaOneフリークと化しています。

コメント

  • 結合関数の例と説明が不適切?

    結合関数の例ですがこの例だと非結合関数でも同じ結果になります。引数は関数呼び出しの式 add(x, y) で参照されているだけなので通常の式で参照される変数と同様に変数 x や y の変更に伴い z の値が更新されます。結合関数にする必要がありません。

    Commented : #1  say (2009/02/08, 02:24)

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

2010年版SEO体得講座

本連載では,いまや企業サイトの戦略の1つとして欠かすことのできないSEOについて,最新トレンドからすぐに使えるTipsまでを紹介します。

小型Linuxサーバの最高峰 OpenBlockS 600活用指南

搭載メモリの増加,CPUクロックの向上など,あらゆる面が強化された期待の新モデルOpenBlockS 600。この記事ではOpenBlockS 600の紹介から,活用するためのさまざまなノウハウを紹介していきます。

はじめMath! Javaでコンピュータ数学

プログラミング言語入門者向けに,知っていると役立つ数学的トピックスを紹介します。簡単な演習問題と解説で,即活用できる知識を目指します。

教科書には載っていない ネットワークエンジニアの実践技術

ネットワークエンジニア,インフラエンジニアのトラブル対応には,時には「教科書通りにいかない」テクニックが必要となります。資格試験では得られないこうした実践的な技術について,実例を元に紹介します。

Googleケータイ,世に現る

2008年9月,Googleが中心となって開発されている「Android」を採用した携帯電話「T-Mobile G1」が発表されました。本連載ではT-Mobile G1を中心にGoogleケータイに迫ります。

モバゲーオープンプラットフォームに挑戦!――面白法人カヤック流モバゲーオープンプラットフォーム企画と開発のイロハ

2010年1月にリリースとなったモバゲーオープンプラットフォーム。その制作企業であるカヤックが,アイデアを企画に落とし込み,開発までのノウハウを紹介します。

プロトタイピングツールSketchFlowを用いた,Silverlightアプリ開発

SketchFlowプロトタイプ作成からアプリケーション開発までをExpression Blend 3を使って実践的に解説します。

Ubuntu Weekly Recipe

Ubuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス

最近のコメント