rubymotion release version
TRANSCRIPT
![Page 1: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/1.jpg)
RubyCo
nf Taiw
an
RubyMotionHACK YOUR IOS APP LIKE NEVER BEFORE
![Page 2: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/2.jpg)
Who Am I?
![Page 3: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/3.jpg)
古傑芳
![Page 4: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/4.jpg)
@josephku
![Page 5: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/5.jpg)
![Page 6: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/6.jpg)
WHAT’S RUBYMOTION?
A Ruby toolchain for iOS
Develop and test native iOS app in Ruby
Based on MacRuby
Laurent Sansonetti (@lrz)
![Page 7: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/7.jpg)
Why RubyMotion?
![Page 8: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/8.jpg)
![Page 9: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/9.jpg)
Objective-C
Objective-C Runtime
iOS SDK
Foundation Framework
![Page 10: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/10.jpg)
Objective-C
Objective-C Runtime
iOS SDK
Foundation Framework
RubyMotion
![Page 11: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/11.jpg)
![Page 12: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/12.jpg)
![Page 13: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/13.jpg)
![Page 14: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/14.jpg)
WHY RUBYMOTION?
100% native code
Keep your editor
App Store compliant
![Page 15: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/15.jpg)
Babe, Let’s Rock!!
![Page 16: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/16.jpg)
Dirty
![Page 17: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/17.jpg)
Dirty
![Page 18: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/18.jpg)
The Last Mile
![Page 19: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/19.jpg)
DEPLOYMENT
Deploy your app to beta testers by TestFlight
Deploy to App Store
$ rake archive:distribution
$ gem install motion-testflight
$ rake testflight notes='Orz'
![Page 20: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/20.jpg)
// Foo.h@interface Foo: NSObject{}@property (nonatomic, strong) NSString *bar;@end
// Foo.m#import “Foo.h”@implementation Foo@synthesize bar = _bar;@end
class Foo attr_accessor :barend
Objective-C
RubyMotion
![Page 21: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/21.jpg)
outputImageProviderFromBufferWithPixelFormat:pixelsWide:pixelsHigh:baseAddress:bytesPerRow:releaseCallback:releaseContext:colorSpace:shoul
dColorMatch:
WTF!!
![Page 22: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/22.jpg)
NSDictionary *rules = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber NumberWithBool:TRUE],"RubyIsAwesome",nil];
Objective-C
RubyMotionrules = { RubyIsAwesome: 1 }
What’s the magic??
![Page 23: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/23.jpg)
Babe, Rock Again!!
![Page 24: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/24.jpg)
LIMITATIONS
require
eval
define_method
Proc#binding
Regular gems don’t work
![Page 25: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/25.jpg)
PROS & CONS
One-time fee of $199
Growing faster and faster
Apple’s attitude
![Page 26: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/26.jpg)
Is RubyMotion the future?
![Page 27: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/27.jpg)
DSL
![Page 28: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/28.jpg)
App.alert("BubbleWrap is awesome!")App.run_after(0.5) { p "It's #{Time.now}" }App.open_url("http://rubyconf.tw/2012/")
Device.iphone?Device.ipad?Device.front_camera?
BW::Media.play_modal("http://www.hrupin.com/wp-content/uploads/mp3/testsong_20_sec.mp3")
EM.add_timer 1.0 do puts "Great scott!"end
![Page 29: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/29.jpg)
![Page 30: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/30.jpg)
![Page 31: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/31.jpg)
RubyMine
![Page 32: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/32.jpg)
![Page 33: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/33.jpg)
![Page 34: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/34.jpg)
IS THE RUBYMOTION THE FUTURE?
DSL
Well-known editor and IDE Support
Active community
![Page 35: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/35.jpg)
C’mon, it’s Ruby!!
![Page 36: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/36.jpg)
Any questions?
![Page 37: RubyMotion Release Version](https://reader033.vdocuments.net/reader033/viewer/2022042512/5450f2a9b1af9f19098b5192/html5/thumbnails/37.jpg)
Thank you!