Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RubyMotion: Hack Your iOS App Like Never Before
Search
Joseph Ku
December 08, 2012
Technology
5
900
RubyMotion: Hack Your iOS App Like Never Before
* Talk @ RubyConf Taiwan 2012 (2012.12.08)
Joseph Ku
December 08, 2012
Tweet
Share
More Decks by Joseph Ku
See All by Joseph Ku
R&B: When Ruby Met Bitcoin
joseph
0
180
第一次去 WWDC 就上手
joseph
0
200
Swift Introduction to Swift in Ruby
joseph
0
150
手機遊戲開發的兩三事
joseph
0
110
RubyMotion Gets A Cool New Friend: mruby on iOS
joseph
2
800
Other Decks in Technology
See All in Technology
AI研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
130
簡単に始めるSnowflakeの機械学習
nayuts
1
190
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
公共領域から学ぶ クラウド移行についてエンジニアが意識していること
kawakawa2222
0
140
MySQLのロックの種類とその競合
yoku0825
6
1.6k
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
エンジニアの生存戦略 〜クラウド潮流の経験から紐解く技術トレンドのメカニズムと乗りこなし方〜
shimy
9
1.9k
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
サービス開発を前に進めるために 新米リードエンジニアが 取り組んだこと / Steps Taken by a Novice Lead Engineer to Advance Service Development
nologyance
0
180
テスト・設計研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
GoとアクターモデルでES+CQRSを実践! / proto_actor_es_cqrs
ytake
1
150
Featured
See All Featured
What the flash - Photography Introduction
edds
65
11k
Fantastic passwords and where to find them - at NoRuKo
philnash
42
2.7k
The Pragmatic Product Professional
lauravandoore
29
6.1k
Documentation Writing (for coders)
carmenintech
63
4.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
How to train your dragon (web standard)
notwaldorf
79
5.5k
Infographics Made Easy
chrislema
238
18k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
19k
Art, The Web, and Tiny UX
lynnandtonic
291
20k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
23
1.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
248
20k
Docker and Python
trallard
37
2.9k
Transcript
RubyConf Taiwan RubyMotion HACK YOUR IOS APP LIKE NEVER BEFORE
Who Am I?
ຑพ፡
!KPTFQILV
None
WHAT’S RUBYMOTION? A Ruby toolchain for iOS Develop and test
native iOS app in Ruby Based on MacRuby Laurent Sansonetti (@lrz)
Why RubyMotion?
None
Objective-C Objective-C Runtime iOS SDK Foundation Framework
Objective-C Objective-C Runtime iOS SDK Foundation Framework RubyMotion
None
None
None
WHY RUBYMOTION? 100% native code Keep your editor App Store
compliant
Babe, Let’s Rock!!
Dirty
Dirty
The Last Mile
DEPLOYMENT Deploy your app to beta testers by TestFlight Deploy
to App Store $ rake archive:distribution $ gem install motion-testflight $ rake testflight notes='Orz'
// 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 :bar end Objective-C RubyMotion
outputImageProviderFromBufferWithPixelFormat:pixelsWide:pixelsHigh:ba seAddress:bytesPerRow:releaseCallback:releaseContext:colorSpace:shoul dColorMatch: WTF!!
NSDictionary *rules = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber NumberWithBool:TRUE],"RubyIsAwesome",nil]; Objective-C RubyMotion rules =
{ RubyIsAwesome: 1 } What’s the magic??
Babe, Rock Again!!
LIMITATIONS require eval define_method Proc#binding Regular gems don’t work
PROS & CONS One-time fee of $199 Growing faster and
faster Apple’s attitude
Is RubyMotion the future?
%4-
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
None
None
3VCZ.JOF
None
None
IS THE RUBYMOTION THE FUTURE? DSL Well-known editor and IDE
Support Active community
C’mon, it’s Ruby!!
Any questions?
5IBOLZPV