Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた

  • Be the first to comment

JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた

  1. 1. JavaFXとRoboVMを使って iOS上で動くアプリを試してみた @tikemin
  2. 2. BioGraphy ◇ とあるえすあいあー(@tikemin) ◇ 趣味:モノ作り(ソフト/ハード問わず) ▶ Webサービスをいくつか作ったり ◇ Javaの経験 ▶ 「Javaってオブジェクト指向の勉強用言語で しょ?」程度... ▶ 3ヶ月前までJSPもServletも触った事が無い
  3. 3. BioGraphy ◇ とあるえすあいあー(@tikemin) ◇ 趣味:モノ作り(ソフト/ハード問わず) ▶ Webサービスをいくつか作ったり ◇ Javaの経験 ▶ 「Javaってオブジェクト指向の勉強用言語で しょ?」程度... ▶ 3ヶ月前までJSPもServletも触った事が無い
  4. 4. ということでLTすることに
  5. 5. そんな私が...
  6. 6. 本日扱うテーマは
  7. 7. JavaFX+RoboVM
  8. 8. JavaFX ◇ JavaFXとは ▶ Java用のGUIライブラリ(Swingの後継) ▶ リッチなUIが簡単に作れる(コンポーネントが充実) ▶ JavaFX 2.xとJavaFX 8では全然違うらしい... ▶ デザイン部分をCSSで書ける!?(その他機能多数...) きっともっと詳しい人が後で説明してくれます
  9. 9. JavaFX+RoboVM
  10. 10. RoboVMとは? ◇ http://blog.robovm.org/ ◇ Javaのソースコードを ARMまたはx86のコードに 変換することができる コンパイラ(トランスレーター) ▶ Titanium(js) ▶ Apache License v2.0 ▶ Alpha software (0.0.3.1)
  11. 11. つまり
  12. 12. JavaFX+RoboVM
  13. 13. JavaでリッチなUIの iOSアプリ開発が可能に!!
  14. 14. これ結構嬉しくないですか?
  15. 15. RoboVMとは? ◇ http://blog.robovm.org/ ◇ Javaのソースコードを ARMまたはx86のコードに 変換することができる コンパイラ ▶ Titanium(js)/J2ObjC ▶ Apache License v2.0 ▶ Alpha software (0.0.3.1)
  16. 16. RoboVMを始めるなら
  17. 17. eclipseを使いましょう
  18. 18. Why so eclipse? ◇ コマンドベースだと大変 ◇ 例えば... ▶ もちろん専用のスクリプトを書いてもいいけど... ◇ RoboVMはeclipseのpluginを提供している $javac -cp robovm-0.0.3/lib/robovm-rt.jar:robovm-0.0.3/lib/robovm-objc.jar:robovm-0.0.3/lib/robovm- cocoatouch.jar -d classes/ IOSDemo.java $robovm-0.0.3/bin/robovm -verbose -arch x86 -os ios -cp robovm-0.0.3/lib/robovm- objc.jar:robovm-0.0.3/lib/robovm-cocoatouch.jar:classes/ -run IOSDemo 素直にIDEを使いましょう
  19. 19. ということで...
  20. 20. eclipseを使いましょう
  21. 21. eclipseでの環境構築 ◇ 「http://download.robovm.org/eclipse/」をpluginに追加するだけ
  22. 22. ではさっそく
  23. 23. Demo
  24. 24. 簡単なソースコード解説 5 public class IOSDemo extends UIApplicationDelegate.Adapter {//ApplicationDeleget.Adapterの継承(iOS!) 6 7 private UIWindow window = null; 8 private int clickCount = 0; 9 10 @Override 11 public boolean didFinishLaunching(UIApplication application, 12 NSDictionary launchOptions) {//Androidっぽい 13 14 //ボタンを生成 15 final UIButton button = UIButton.fromType(UIButtonType.RoundedRect); 16 button.setFrame(new CGRect(115.0f, 121.0f, 91.0f, 37.0f)); 17 button.setTitle("Click me!", UIControlState.Normal); 18 19 //ボタンにイベントリスナー登録 20 button.addOnTouchUpInsideListener(new UIControl.OnTouchUpInsideListener() { 21 @Override 22 public void onTouchUpInside(UIControl control, UIEvent event) { 23 button.setTitle("Click #" + (++clickCount), UIControlState.Normal); 24 } 25 }); 26 27 //screenに部品を配置 28 window = new UIWindow(UIScreen.getMainScreen().getBounds()); 29 window.setBackgroundColor(UIColor.lightGrayColor()); 30 window.addSubview(button); 31 window.makeKeyAndVisible(); 32 33 return true; 34 } 35 36 public static void main(String[] args) { 37 NSAutoreleasePool pool = new NSAutoreleasePool(); 38 UIApplication.main(args, null, IOSDemo.class); 39 pool.drain(); 40 } 41 }
  25. 25. 正直まだ微妙な所も多々...
  26. 26. 改善点 ◇ Splash を自分で作る必要がある(実装レベルで) ▶ titanium等,Unity(有料)は画像さえ作ればOK ◇ アイコンの設定 ▶ やり方が不明だれか教えてください(笑) ◇ まだまだAlpha版 Warning! RoboVM is alpha software.It's not yet ready for production use. Expect to be bitten by bugs. If you find a bug, please report it. 今後の開発に期待
  27. 27.
  28. 28. 最近のRoboVM ◇ Maven Pluginも提供開始 ▶ 実機で動かす(プロビジョニング済のデバイスが必要) git clone https://github.com/robovm/robovm-sample-ios-app.git cd robovm-sample-ios-app mvn robovm:iphone-sim mvn robovm:ios-device MavenのPluginも提供している
  29. 29. 最近のRoboVM ◇ Objective-Cのメソッドを呼び出し可能に ▶ Objective-C code ▶ Java code label.alpha = 0.0; [UIControl animateWithDuration:0.5 animations:^{ label.alpha = 1.0; }]; label.setAlpha(0.0f); UIControl.animate(0.5f, new VoidBlock() { public void invoke() { label.setAlpha(1.0f); } }); Grand Central Dispatch なども利用可能
  30. 30. OpenGL ES ◇ iOS OpenGLES in Java on RoboVM(2013/2/15) ▶ なんと OpenGLESのコードが書けるように I never thought a screen fading from black to red would look this great! It almost made me cry. :-) Simulatorだとうまく動作しないので実機で
  31. 31. まとめ ◇ JavaのソースコードをARMまたはx86のコードに 変換することができるコンパイラ(トランスレーター) ◇ JavaFXなどと組み合わせる事でリッチなUI ◇ 開発にはeclipseを使うのが簡単 ◇ OpenGLES等にも対応 Javaでiphoneアプリ開発
  32. 32. Reference ◇ http://www.robovm.org/ ◇ http://blog.robovm.org/ ◇ http://www.slideshare.net/skrb/javafx-20-9810358

×