[RubyMotion LT] nitronに見るiosアプリ開発の未来

2,454 views

Published on

  • Be the first to comment

[RubyMotion LT] nitronに見るiosアプリ開発の未来

  1. 1. RubyMotion LTnitronに見るiOSアプリ開発の未来西見 公宏 / Masahiro Nishimi(@mah_lab)SonicGarden Inc.
  2. 2. 自己紹介 http://thinkit.co.jp/book/2012/06/07/3569
  3. 3. 提供 http://www.sonicgarden.jp/
  4. 4. RubyMotionをはじめて見る人のイメージもしかして:Objective-CのコードをRubyで書き直しているだけ
  5. 5. 事実Objective-CのコードをRubyで書き直しているだけ
  6. 6. いやいや、これはちょっと。。もう少しRubyっぽくならんか?Railsみたいな感じに開発できんものか?
  7. 7. そこでnitronですよ https://github.com/mattgreen/nitron
  8. 8. nitronとは● Master-Detailなテーブルビューを持つアプリを 超高速に作れるようになるラッパーライブラリ。● CoreDataにActiveRecordっぽい文法でアクセス する機能もサポート。(でもRelationはサポートし てない!)● データバインディングとアウトレットを無理やりサ ポート。
  9. 9. 2012/7/20現在テストコードが1行も書かれていない強気なGemですが、RubyMotionで書くコードって後々こうなっていくんだろうなーという希望を持てるGemです。
  10. 10. 開発の流れ (1)プロジェクトを作成してnitronをBundle$ motion create task$ vi Gemfilesource :rubygemsgem "rake"gem "nitron"$ bundle install$ rm app/app_delegate.rb
  11. 11. 開発の流れ (2)Rakefileの設定$:.unshift("/Library/RubyMotion/lib")require motion/projectrequire rubygemsrequire bundlerBundler.requireMotion::Project::App.setup do |app|...
  12. 12. 開発の流れ (3)StoryboardとCoreDataの用意XcodeでMaster-Detailプロジェクトを作り、生成されたStoryboardとxcdatamodeldをXcodeプロジェクトからコピーする。
  13. 13. 開発の流れ (4)CoreDataの設定Taskエンティティを作成する。
  14. 14. 開発の流れ (5)Taskモデルを作成するclass Task < Nitron::Model def self.all order("due") end def due primitiveValueForKey("due").to_s endend
  15. 15. 開発の流れ (6)コントローラを作成する# task_list_view_controller.rbclass TaskListViewController < Nitron::TableViewController collection { Task.all }end# task_detail_view_controller.rbclass TaskDetailViewController < Nitron::ViewControllerend
  16. 16. 開発の流れ (7)データバインディング
  17. 17. 開発の流れ (8)動かしてみる$ rake(rake) Task.create(title:"Buy a pony", due: NSDate.date)
  18. 18. Railsっぽい!例では紹介できなかったのですが、コントローラにアウトレットのイベントを書いてハンドリングすることもできます。class TaskCreateViewController < Nitron::ViewController on :cancel do close endend
  19. 19. これからのRubyMotioniOS LibraryのレイヤーをRubyっぽくラップしたRailsみたいなGemの出現によって、一気に盛り上がるような気がします。nitronからはそんな流れが垣間見れたのでした。
  20. 20. Have a good RubyMotion!!

×