http://docs.robovm.com/tutorials/navigation-basics/navigation-basics.html
StoryBoardを使ったチュートリアルと大差ない。Segueを使ってPushしたりするだけ。
ただ、ViewController間の値渡しでこーゆーコードを書いているが、実際にはデリゲートを使って実装しましょう。遷移先のViewControllerのインスタンスに依存すると再利用ができない。GUIプログラミングは「イベントの発火と着地点は同じでも、処理内容が微妙に違う」というケースがとても多いので、コピペがはびこりやすい。画面遷移のチュートリアルだから簡単にするためにこうしているんだろうけど。
@Override public void prepareForSegue(UIStoryboardSegue segue, NSObject sender) { super.prepareForSegue(segue, sender); if(segue.getIdentifier().equals("ShowNames")) { NameListController nameListController = (NameListController)segue.getDestinationViewController(); nameListController.setNames(names); } }
デリゲートでの処理方法については、下記が詳しい。
ゲームのようにiOS,Androidの上に共通の描画エンジン(libgdxとか)があってRoboVM挟んでJavaで一本化してビルド時にapk / ipaを作るっていうのであれば、RoboVMの真価が発揮されると思う。コードの7割ぐらい共通化できる気がする。
はてなブログのアプリみたいにほとんどがネイティブUIで、JSON取ってきてパースするぞーみたいなアプリの場合、RoboVMで頑張らなくてもええんちゃう感はあるが、間違ってるかもしれないので次はAndroid / iOSのアプリ構築にトライしてみます。