2011年10月15日土曜日

Java ME - JavaFXと融合しAndroid/iOSに対応!?

 iPhoneAndroidの爆発的な普及から盛り上がっているモバイルアプリケーション市場の中、いまひとつ元気がないのが、Java MEです。

 フィーチャーフォンJava CardBlu-rayプレイヤーなどあまり目立たない形で広く普及はしているのですが、開発者にとって魅力のあるプラットフォームとはいえないのが正直なところではないでしょうか。

 Java MEでは現在、非接触通信ジャイロセンサの読み取りなど現在普及しているスマートフォンで実装している多くの機能をJava MEのAPIでも実現できるようにする取り組みを行っています。

 また、これまでJava SEとは異なるライフサイクルで開発されていたのを歩調を合わせる形にし、Java SE 8と同時に新しいメジャーバージョンをリリースすることが予告されました。

 さらにJava MEはJavaFXと親和性を高め、JavaFXアプリケーションがあらゆるJava ME対応デバイスでも動作することを目指しているようです。非常に関心を呼んだのはJavaFXで書かれたゲームがWindowsタブレット、Androidタブレット、さらにはiPadで動作してしまうというデモです。

 Androidは「Dalvik」と呼ばれるJavaと非常に似た仮想マシンを搭載しているためJavaFXを移植するのはそれほど難しいことではないかもしれません。しかし、Objective-Cで開発を行うことを前提としているiOSプラットフォームでJava/JavaFXアプリケーションが動くようになれば開発者コミュニティにおけるインパクトは非常に大きなものとなります。

 ただし、Android/iOSデバイス上のJavaFXはあくまで技術デモに過ぎず、これらのプラットフォーム向けのJavaFX、JVMのリリースに関して具体的なロードマップは示されていません。これは、技術上はすでにある程度実現していても、実際にマーケットに登場させるために乗り越えなければならない政治的な壁が多くあるからと想像できます。

 例えば、Androidについてはオラクルとグーグルの間で特許上の訴訟問題があり、またアップルはiOSでObjective-C以外のプログラミング言語をあまり歓迎しない姿勢です。JavaFX、Java MEという技術の融合でデスクトップ、モバイルアプリケーションでも「Write once, run anywhere」が達成できれば開発者コミュニティに広く歓迎されるのは間違いありませんが、早急な実現は期待しない方がよさそうです。

 Mac OS X for OpenJDKのBoFセッションでは、「ランタイムを全部アプリに含めていればiOSの規約はクリアできるんじゃないか」という話があったようです。Adobe AIRが最新版の3で実現している「Captive Runtime」機能のようなものなら可能性はあるのかもしれません。

 

0 件のコメント:

コメントを投稿