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.
RUBYMOTION
RUBY FOR iOS
Rui Miguel Santos
18 February 2014

DEPLOYING YOUR DREAMS
RUBYMOTION
A RUBY TOOLCHAIN FOR DEVELOPING IOS APPLICATIONS

PAGE 2
ABOUT
- Laurent Sansonetti
- Released by HipByte in
May 2012
- MacRuby port for iOS
- Fully compiled
- 100% App Store comp...
WHY BOTHER?
- Ruby
- No code interpretation (fully
compiled)
- IDE agnostic
- Terminal-based workflow
- REPL
- Testing
PAG...
IMPLEMENTATION
iOS SDK

Foundation Framework
Objective-C Runtime

Objective-C

PAGE 5
IMPLEMENTATION
iOS SDK

Foundation Framework
Objective-C Runtime

RubyMotion

Objective-C

PAGE 6
WORKFLOW
- Terminal based
- rake

- Keep your editor
- RubyMine support

- Testing framework
- Deploy
- Testflight support...
WORKFLOW
> motion create meetupDemo
Create meetupDemo
Create meetupDemo/.gitignore
Create meetupDemo/app/app_delegate.rb
C...
WORKFLOW
> rake
Build ./build/iPhoneSimulator-7.0-Development
Compile ./app/app_delegate.rb
Create ./build/iPhoneSimulator...
LEARN BY TRANSLATING

PAGE 10
REPL
- Tab completion (irb-like)
- Interactive development
- ⌘ + click to change context (self)
- Traverse view hierarchy
...
RUBYMOTION != MRI
-

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

PAGE 12
COMMUNITY
- RubyMotion wrappers
- DSLs
-

BubbleWrap
Sugarcube
Teacup
ProMotion
…

- CocoaPods
- Dedicated conference
- #i...
TESTING
-

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

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

PAGE 15
RESOURCES
-

Official website
-

-

RubyMotion Tutorial
-

-

github.com/HipByte

RubyMotion Wrappers
-

-

groups.google....
Imaginarycloud.com
info@imaginarycloud.com

+351 218 053 896
Rua Serpa Pinto, nº 14A, 3º andar
1200-445 Lisboa, Portugal
Upcoming SlideShare
Loading in …5
×

RubyMotion - Meetup Ruby lx

550 views

Published on

RubyMotion - An overview

iOS development in Ruby

Published in: Technology
  • Be the first to comment

RubyMotion - Meetup Ruby lx

  1. 1. RUBYMOTION RUBY FOR iOS Rui Miguel Santos 18 February 2014 DEPLOYING YOUR DREAMS
  2. 2. RUBYMOTION A RUBY TOOLCHAIN FOR DEVELOPING IOS APPLICATIONS PAGE 2
  3. 3. ABOUT - Laurent Sansonetti - Released by HipByte in May 2012 - MacRuby port for iOS - Fully compiled - 100% App Store compliant PAGE 3
  4. 4. WHY BOTHER? - Ruby - No code interpretation (fully compiled) - IDE agnostic - Terminal-based workflow - REPL - Testing PAGE 4
  5. 5. IMPLEMENTATION iOS SDK Foundation Framework Objective-C Runtime Objective-C PAGE 5
  6. 6. IMPLEMENTATION iOS SDK Foundation Framework Objective-C Runtime RubyMotion Objective-C PAGE 6
  7. 7. WORKFLOW - Terminal based - rake - Keep your editor - RubyMine support - Testing framework - Deploy - Testflight support PAGE 7
  8. 8. WORKFLOW > motion create meetupDemo Create meetupDemo Create meetupDemo/.gitignore Create meetupDemo/app/app_delegate.rb Create meetupDemo/Gemfile Create meetupDemo/Rakefile Create meetupDemo/resources/Default-568h@2x.png Create meetupDemo/spec/main_spec.rb Code away… PAGE 8
  9. 9. WORKFLOW > 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/Default-568h@2x.png Create ./build/iPhoneSimulator-7.0-Development/meetupDemo.dSYM Simulate ./build/iPhoneSimulator-7.0-Development/meetupDemo.app (main)> Deploy! > rake testflight notes=”Ready to distribute!" PAGE 9
  10. 10. LEARN BY TRANSLATING PAGE 10
  11. 11. REPL - Tab completion (irb-like) - Interactive development - ⌘ + click to change context (self) - Traverse view hierarchy - Modify objects in runtime PAGE 11
  12. 12. RUBYMOTION != MRI - No require No eval No Proc#binding Named parameters Regular gems need to be modified PAGE 12
  13. 13. COMMUNITY - RubyMotion wrappers - DSLs - BubbleWrap Sugarcube Teacup ProMotion … - CocoaPods - Dedicated conference - #inspect 2014 PAGE 13
  14. 14. TESTING - MacBacon (RSpec) Frank (Cucumber) Facon (motion-facon) Symbiote PAGE 14
  15. 15. DOWNSIDES - Not free (150€) - Lack of static checks in compile time - Debugging - Hard to access low level layers PAGE 15
  16. 16. RESOURCES - Official website - - RubyMotion Tutorial - - github.com/HipByte RubyMotion Wrappers - - groups.google.com/forum/#!forum/rubymotion GitHub repositories - - rubymotion-tutorial.com Google Groups - - rubymotion.com rubymotion-wrappers.com Screencasts - motioninmotion.tv motioncasts.tv pragmaticstudio.com/screencasts/rubymotion PAGE 16
  17. 17. Imaginarycloud.com info@imaginarycloud.com +351 218 053 896 Rua Serpa Pinto, nº 14A, 3º andar 1200-445 Lisboa, Portugal

×