Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

RoboVM + Navigation Basic チュートリアルをやってみた

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);
     }
 }

デリゲートでの処理方法については、下記が詳しい。

www.masaplabs.com

Swiftチュートリアルだけど、下記も勉強になる。

jamesonquave.com

ゲームのようにiOS,Androidの上に共通の描画エンジン(libgdxとか)があってRoboVM挟んでJavaで一本化してビルド時にapk / ipaを作るっていうのであれば、RoboVMの真価が発揮されると思う。コードの7割ぐらい共通化できる気がする。

はてなブログのアプリみたいにほとんどがネイティブUIで、JSON取ってきてパースするぞーみたいなアプリの場合、RoboVMで頑張らなくてもええんちゃう感はあるが、間違ってるかもしれないので次はAndroid / iOSのアプリ構築にトライしてみます。

github.com