Slide 1

Slide 1 text

RUBYMOTION RUBY  FOR  iOS   DEPLOYING YOUR DREAMS Tiago Franco 21 February 2014

Slide 2

Slide 2 text

RUBYMOTION A  RUBY  TOOLCHAIN  FOR  DEVELOPING  IOS  APPLICATIONS   PAGE  2  

Slide 3

Slide 3 text

ABOUT -  Laurent Sansonetti -  Released by HipByte in May 2012 -  MacRuby port for iOS -  Fully compiled -  100% App Store compliant PAGE  3  

Slide 4

Slide 4 text

WHY BOTHER? PAGE  4   -  Ruby -  No code interpretation (fully compiled) -  IDE agnostic -  Terminal-based workflow -  REPL -  Testing

Slide 5

Slide 5 text

IMPLEMENTATION PAGE  5   iOS SDK Foundation Framework Objective-C Runtime Objective-C

Slide 6

Slide 6 text

IMPLEMENTATION PAGE  6   iOS SDK Foundation Framework Objective-C Runtime Objective-C RubyMotion

Slide 7

Slide 7 text

WORKFLOW PAGE  7   -  Terminal based -  rake -  Keep your editor -  RubyMine support -  Testing framework -  Deploy -  Testflight support

Slide 8

Slide 8 text

WORKFLOW PAGE  8   > motion create meetupDemo Create meetupDemo Create meetupDemo/.gitignore Create meetupDemo/app/app_delegate.rb Create meetupDemo/Gemfile Create meetupDemo/Rakefile Create meetupDemo/resources/[email protected] Create meetupDemo/spec/main_spec.rb Code away…

Slide 9

Slide 9 text

WORKFLOW PAGE  9   > rake Build ./build/iPhoneSimulator-7.0-Development Compile ./app/app_delegate.rb Create ./build/iPhoneSimulator-7.0-Development/meetupDemo.app Link ./build/iPhoneSimulator-7.0-Development/meetupDemo.app/meetupDemo Create ./build/iPhoneSimulator-7.0-Development/meetupDemo.app/PkgInfo Create ./build/iPhoneSimulator-7.0-Development/meetupDemo.app/Info.plist Copy ./resources/[email protected] Create ./build/iPhoneSimulator-7.0-Development/meetupDemo.dSYM Simulate ./build/iPhoneSimulator-7.0-Development/meetupDemo.app (main)> > rake testflight notes=”Ready to distribute!" Deploy!

Slide 10

Slide 10 text

LEARN BY TRANSLATING PAGE  10  

Slide 11

Slide 11 text

REPL PAGE  11   -  Tab completion (irb-like) -  Interactive development -  ⌘ + click to change context (self) -  Traverse view hierarchy -  Modify objects in runtime

Slide 12

Slide 12 text

RUBYMOTION != MRI PAGE  12   -  No require -  No eval -  No Proc#binding -  Named parameters -  Regular gems need to be modified

Slide 13

Slide 13 text

COMMUNITY PAGE  13   -  RubyMotion wrappers -  DSLs -  BubbleWrap -  Sugarcube -  Teacup -  ProMotion -  … -  CocoaPods -  Dedicated conference -  #inspect 2014

Slide 14

Slide 14 text

TESTING PAGE  14   -  MacBacon (RSpec) -  Frank (Cucumber) -  Facon (motion-facon) -  Symbiote

Slide 15

Slide 15 text

DOWNSIDES PAGE  15   -  Not free (150€) -  Lack of static checks in compile time -  Debugging -  Hard to access low level layers

Slide 16

Slide 16 text

RESOURCES PAGE  16   -  Official website -  rubymotion.com -  RubyMotion Tutorial -  rubymotion-tutorial.com -  Google Groups -  groups.google.com/forum/#!forum/rubymotion -  GitHub repositories -  github.com/HipByte -  RubyMotion Wrappers -  rubymotion-wrappers.com -  Screencasts -  motioninmotion.tv -  motioncasts.tv -  pragmaticstudio.com/screencasts/rubymotion

Slide 17

Slide 17 text

Imaginarycloud.com [email protected] +351 218 053 896 Rua Serpa Pinto, nº 14A, 3º andar 1200-445 Lisboa, Portugal