Developing iPhone Applications using Java

This entry was posted by on Wednesday, 15 October, 2008

そういえば新Macだけど、まあそんなに凄くはないよな。モデルチェンジというぐらい。でもそろそろ買い替えようかと思って、新型を待ってたということもあり、そろそろ買うか、というぐらい(まぁでも、もそっと待ちますよ)。

例の「ボタンのないトラックパッド」というのはどういうやつか、と渋谷のアップルストアに行ってさわってみたが、「なるほど」という感じ。むかし、ボタンのないマウスってあったでしょうアップルに。マウス先端を押し下げようとするとクリック感があってクリックできるっていうあれ。まあ、あんな感じでパッド下部がクリックできる。あとまあふつうにタップしたりとかできますけれども。

 

という話とはまったく関係なく、http://jp.youtube.com/watch?v=s8nMpi5-P-Iというビデオを見た。iPhoneアプリをJavaで書く、という筋書きのもの。どうやるかというとJavaのクラスファイル(バイトコード)をいったんXML形式にし、これをObjective-Cに変換してさらにコンパイルすることでiPhoneアプリとして作る、というものらしい。ローカルにはiPhoneのウィジェットAPIを模倣するJavaクラスライブラリがあって、ローカルだとpure Javaで動くのだとか、そこそこ面白い。

Javaとはだいぶ違ったテイストのObjective-Cにマップするのはなかなかしんどいのではないかと思うが、その辺はわりと素気なくてたいして面白くなかった。たとえば、

>
  • Objective-Cにはオーバーロードがない→名前マングルで対処 >
  • Objective-Cにはスタティック変数がない→グローバル変数+名前マングル >
  • Objective-Cには(iPhoneだと)ガベージコレクションがない→全メソッドでautoreleaseすればオッケー >
  • オーバヘッドは?→こういうboilerplateはgccが最適化で頑張ってくれるよ
  • とかいった具合。

    面白いのは、話者が主導している(らしい)xmlvmという話で、VMの記述をxmlにするという話なのだが、異なるVMを違うxml名前空間にマップして、さらにそれらを混ぜるといった怪しいことができると。で、それらをいろんな形式(JavaVMとか.NetCLRとかObjective-CとかJavaScriptとか)に吐き出すことができてハッピーなのだそうだが、最近は入力としてRubyVM(いわゆるYARV)も対応したらしい。

    つまり、それを使うとRuby(1.9系)でiPhoneアプリを開発できる(かもしれない)ということで、そうだとするとちょっとわくわくしてくる、かも。

    Comments are closed.