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

418 views
340 views

Published on

RubyMotion - An overview

iOS development in Ruby

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
418
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×