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上で動くアプリを試してみた

6,367 views

Published on

Published in: Technology
  • 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

×