成績保留対象者用課題
学籍番号: 2172117
氏名: 山下 マナト
インタラクティブ性を高められる技術として技術の1つとして注目され、当時のweb普及に一躍を買ったJavaアプレットの難易度が高いという点を補うためにJavaFXが登場した。
SUN Microsystems(現Oracle)のChlistopher Oliver氏による個人的なプロジェクトとして始まり、2007年にJavaOneと呼ばれるWorldwide Java Developer カンファレンスで JavaFX を初めて発表しました。
様々なOSで使用できるライブラリとして活用され、2014にリリースされたJava Standard Editionのver.8からはJDKに含まれていましたが、「HTML 5とJavaScript、ネイティブなモバイル開発の登場で、JavaFXのようなクロスプラットフォームのツールキットの市場はあまり広がらないものと捉えられた」として、2018年のJava SE11ではJDK11から削除されている。
JavaFX は、JDK に加えて、ダウンロード可能なオープンソースモジュールとして Gluon 社によって今後もサポートされます。
JavaFXは、Java VM(Java仮想マシン)上で実行することができるAWTやSwingよりも簡単なアニメーションやGUI開発が可能とするRIA(リッチインターネットアプリケーション)のグラフィックおよびメディアパッケージライブラリです。
Java AppletおよびJava Web Startを用いてブラウザを通じて簡単に配布・実行できるRIAプラットフォームとなっている。
JavaFX自体はブラウザを要さず、単体のJavaアプリケーションとして実行することが可能である。
他にも「ドラッグ・トゥ・インストール」と呼ばれる機能がある。これは、web上のJavaウィジットをドラッグして、デスクトップにドロップすると、そのブラウザを閉じてもアプリケーションの動作は中断されず、コンテキストを保持する。サン・マイクロシステムズこの機能を「ブラウザから解放される」ことを可能にする、新しい頒布モデルの幕開けだと宣伝している。
JavaFXのデザインは講義では範囲外であったが、今でもweb開発によく使用されているXML言語であるHTMLと併用されることが多い、CSS(Cascading Style Sheet)で記述可能である。これにより外観およびスタイルは実装から分離されるため、開発者はコーディングに集中できます。
さらに、UI(ユーザーインターフェース)とバッグエンドを分離して記述することが容易になるように、FXMLと呼ばれるXML言語によってマークアップすることができる。これは現在Gluonが提供しているScene Builderというソフトウェアを用いることで簡単に作成可能である。
またJavaの大きな特徴である、様々なOS上でもJavaで記述した同一のプログラムを実行することができるという利点を活かしてJavaFXも様々なプラットフォーム間での互換性を実現している。
JavaFXはオーディオ、ビデオ、グラフィックスおよびアニメーションを得意としていて、様々なデスクトッププラットフォームで実行可能である。
JavaFXはJavaで記述されていて、JRuby, Scalaなどのプログラミング言語の代替として設計されている。WebViewコンポーネントでアプリケーション内にWebページを組み込むことができる。
JavafXでビルド可能なものとしてdocs.Orecle.comで紹介されている例としては、アニメーション、グラフ、コントロールなどの様々なJavaFX機能を示すサンプル・アプリケーションのギャラリとして様々なデスクトップ・プラットフォームで実行可能であるJavaFX Ensemble8や、UIコンポーネントのデザインテーマModena、3DCG作成ツールMayaと互換性が高く、マウスまたはトラックパッドを使用して3Dシーンを移動して確認できるサンプル・アプリケーションである3D Viwerなどを使ったプログラムを構築することができる。
これらは全てJava SE 8に含まれている。
JavaFXは元々RIA用に開発された。RIAとはそもそもWeb上で動作す流ことが多い表示記述言語HTMLに画面制御やキーボードでの制御を行えるようにしたものである。入力系、選択系、表示系などのコントロールを搭載できる。しかし現代を生きる我々にとってはこれらは今HTMLとCSSとJavaScriptによって書かれていることが多いです。
https://atmarkit.itmedia.co.jp/ait/articles/0706/13/news134_3.html
このサイトは2007年当時JavaFXが発表されて間もなく、OpemJDFXをダウンロードして早速デモを試して見たという内容の記事です。当時はWeb開発はXHTML+CSSやAjax回りを使っているWeb開発チームがクライアントサイドを担っていてサーバサイドではまた別のプログラミング言語を使用していたようです。
JavaFXはクライアント側でスムーズな画面遷移や、動画、アニメーション、などユーザビリティの高いサイト構築を売りにしていたようですが、2018年のJDK 11からOracleによってJavaFXは削除された。
Oracleの社員が書いたブログによるとHTML5とJavaScript、ネイティブなモバイル開発の登場で、JavaFXのようなクロスプラットフォームのツールキットの市場は広がらなかったと言われている。
現在はOracleの元を離れてオープンソースとして、Gulon社によるサポートを受けている。GUI開発の観点でも同じJavaのフレームワークとしてよく名前が上がるのが、1996年JDK1.0で標準搭載されたAWT(Abstract Windowing Toolkit), 1998年JDK1.2でリリースされたSwingそしてJavaFXである。
しかし残念ながらJavaSEにはAWTとSwingは含まれています。
これはこれらで構築されているアプリケーションが大量にあるためであるようです。
それではJavaFxは今後どうなってしまうのか。
確かにJavaFXが使われる事はかつてのOracleの想定よりは少なくなり、JavaFXの最大の売りである簡単なRIAの構築はHTML5, CSS, JavaScriptなどによって代替されることが予想されます。
しかし、Guluon社のOpenJFKプロジェクトと長期的なサポートにより、廃れる事はなさそうです。Javaの GUIライブラリとしてのJavaFXはまだ死んでいないと思います。
それどころかクラウドといった最新の技術や、IOSおよびAndroidアプリのクラスプラットフォームを可能とするAPI、作成も可能とのこと。今後もGuluonとオープンソースコミュニティによる発展が期待されます。
日経XTECH 「詳説JavaFX」第1回 JavaFXとは
https://xtech.nikkei.com/it/article/COLUMN/20100412/346953/
Wikipedia JavaFX
https://en.wikipedia.org/wiki/JavaFX
https://ja.wikipedia.org/wiki/JavaFX
InfoQ JavaFXと今後のJavaクライアント技術
infoq.com/jp/news/2018/03/JavaFXRemovedFromJDK/
Oracle JavaFXの概要(rerease 8)
https://docs.oracle.com/javase/jp/8/javafx/get-started-tutorial/jfx-overview.htm
Oracle The Future of JavaFX and Other Java Client Roadmap Updates
https://blogs.oracle.com/java/post/the-future-of-javafx-and-other-java-client-roadmap-updates
Gluon
https://gluonhq.com/
atmarkit JavaFXでJava RIA開発はどれくらい変わるの?
https://atmarkit.itmedia.co.jp/ait/articles/0706/13/news134_3.html