17
RUBYMOTION RUBY FOR iOS DEPLOYING YOUR DREAMS Rui Miguel Santos 18 February 2014

RubyMotion - Meetup Ruby lx

  • Upload
    rmscms

  • View
    264

  • Download
    0

Embed Size (px)

DESCRIPTION

RubyMotion - An overview iOS development in Ruby

Citation preview

Page 1: RubyMotion - Meetup Ruby lx

RUBYMOTION

RUBY FOR iOS

DEPLOYING YOUR DREAMS

Rui Miguel Santos

18 February 2014

Page 2: RubyMotion - Meetup Ruby lx

RUBYMOTIONA RUBY TOOLCHAIN FOR DEVELOPING IOS APPLICATIONS

PAGE 2

Page 3: RubyMotion - Meetup Ruby lx

ABOUT

- Laurent Sansonetti- Released by HipByte in

May 2012- MacRuby port for iOS- Fully compiled- 100% App Store

compliant

PAGE 3

Page 4: RubyMotion - Meetup Ruby lx

WHY BOTHER?

PAGE 4

- Ruby- No code interpretation

(fully compiled)- IDE agnostic- Terminal-based workflow- REPL- Testing

Page 5: RubyMotion - Meetup Ruby lx

IMPLEMENTATION

PAGE 5

iOS SDK

Foundation Framework

Objective-C Runtime

Objective-C

Page 6: RubyMotion - Meetup Ruby lx

IMPLEMENTATION

PAGE 6

iOS SDK

Foundation Framework

Objective-C Runtime

Objective-C

RubyMotion

Page 7: RubyMotion - Meetup Ruby lx

WORKFLOW

PAGE 7

- Terminal based- rake

- Keep your editor- RubyMine support

- Testing framework- Deploy

- Testflight support

Page 8: RubyMotion - Meetup Ruby lx

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…

Page 9: RubyMotion - Meetup Ruby lx

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!

Page 10: RubyMotion - Meetup Ruby lx

LEARN BY TRANSLATING

PAGE 10

Page 11: RubyMotion - Meetup Ruby lx

REPL

PAGE 11

- Tab completion (irb-like)- Interactive development

- ⌘ + click to change context (self)- Traverse view hierarchy- Modify objects in runtime

Page 12: RubyMotion - Meetup Ruby lx

RUBYMOTION != MRI

PAGE 12

- No require- No eval- No Proc#binding- Named parameters- Regular gems need to

be modified

Page 13: RubyMotion - Meetup Ruby lx

COMMUNITY

PAGE 13

- RubyMotion wrappers- DSLs

- BubbleWrap- Sugarcube- Teacup- ProMotion- …

- CocoaPods- Dedicated conference

- #inspect 2014

Page 14: RubyMotion - Meetup Ruby lx

TESTING

PAGE 14

- MacBacon (RSpec)- Frank (Cucumber)- Facon (motion-facon)- Symbiote

Page 15: RubyMotion - Meetup Ruby lx

DOWNSIDES

PAGE 15

- Not free (150€)- Lack of static checks in

compile time- Debugging- Hard to access low level

layers

Page 16: RubyMotion - Meetup Ruby lx

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

Page 17: RubyMotion - Meetup Ruby lx

[email protected]

+351 218 053 896Rua Serpa Pinto, nº 14A, 3º andar

1200-445 Lisboa, Portugal