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について #mixiwwdc
Search
ainame
June 24, 2013
Programming
450
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RubyMotionについて #mixiwwdc
WWDCに行ってきたけど内容については一切話せません @ mixi
にて発表
ainame
June 24, 2013
More Decks by ainame
See All by ainame
Swift 5.7で変わる正規表現を試してみよう
ainame
4
7.7k
iOSDC 2021 - App Store用スクリーンショットの自動生成をアラビア語対応してSwiftUIで実装してみた
ainame
0
6k
DNN/GPU with Ruby #rubykaigi
ainame
2
3.3k
Server Side Swift実用性評価 2017 #iosdc #b
ainame
3
4.5k
Process tons of jobs with Swift
ainame
0
1.9k
Swift on the ObjC #shibuyaswift
ainame
4
920
家族アルバムみてね 開発風景 #realm_jp
ainame
4
4.2k
iOSで無限バックグラウンドアップロード(に挑戦してみた話)
ainame
2
5.3k
リファクタリングとtsort
ainame
1
1.8k
Other Decks in Programming
See All in Programming
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
260
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
210
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.6k
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
190
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
200
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
460
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
630
Creating Composable Callables in Contemporary C++
rollbear
0
190
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.6k
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
440
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
110
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
220
How to train your dragon (web standard)
notwaldorf
97
6.7k
Building the Perfect Custom Keyboard
takai
2
810
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Rails Girls Zürich Keynote
gr2m
96
14k
Docker and Python
trallard
47
3.9k
How to build a perfect <img>
jonoalderson
1
5.8k
Paper Plane
katiecoart
PRO
1
52k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
610
Transcript
RubyMotionʹ͍ͭͯ 2013-06-25 גࣜձࣾϛΫγΟ @ainame
RubyMotion
None
RubyMotionͱ RubyMotion is a revolutionary toolchain for iOS. It lets
you quickly develop and test native iOS applications for iPhone or iPad, all using the awesome Ruby language you know and love.
Warning
ຊൃදΛߦ͏@ainameiOS։ൃΛ ຊ֨తʹۀͰߦ͏͜ͱແ͘ ࠓͷ3݄ࠒ͔ΒRubyMotionΛܦ༝ͯ͠ iOS։ൃࣝΛಘͨͷΈͷएഐऀͰ͢ɻ ຊൃදObjective-CTitanium mobilePhoneGapΛ ᩫΊΔҙਤશ͍͘͟͝·ͤΜɻ ෆదͳൃݴ͕ग़ͯ͠·͏͜ͱ ͋Δ͔͠Ε·ͤΜ͕·͕ྃ͢͝ঝԼ͍͞ɻ
ࣗݾհ @ainame / Satoshi Namai גࣜձࣾϛΫγΟ - ϓϩάϥϚ झຯRubyͰձࣾͰPerlΛॻ͍͍ͯ·͢ ࠷ۙεϚϗΤϯδχΞͬΆ͕͞ग़͖ͯͨ
emacsͷ֦ு motion-mode.el ࡞ͬͯ·͢
ࠓͷ RubyMotionͱ ✔ ࣗݾհ ✔ RubyMotion vs Titanium mobile/Phone Gap
RubyMotion vs Objective-C RubyMotionʹΑΔiOS։ൃͷՄೳੑ ·ͱΊ
RubyMotion vs Titanium mobile/PhoneGap ͲͪΒObjective-CҎ֎ͰiOSΞϓϦॻ͚Δ ͦͦͪΌΜͱ͑Δͷʁ Titaniumͱ͔Phone GapͱԿ͕ҧ͏ͷʁ
RubyMotionͷ͕͜͜ҧ͏ Objective-CͷRuntime্ʹ࣮͞ΕͨRuby ϒϦοδͰͳ͍ ͍ Objective-CͱϦϯΫͰ͖Δ ࣮ફRubyMotion(@naoya_ito) ΑΓ https://speakerdeck.com/naoya/shi-jian-rubymotion
None
None
None
None
None
పఈൺֱ!! Έ ༻ݴޠ ։ൃڥ औΓר͘ ڥ Android ରԠ Ձ֨ RubyMotion
Titanium Mobile Phone Gap ωΠςΟϒ ΞϓϦ Ruby shell + editor or RubyMine(IDE) rubygems cocoapods ☓ $199 ϋΠϒϦο υΞϓϦ ΄΅ JavaScript Titanium Studio (Eclipseϕʔε) Appcelerator Platform ʢ༗ঈʣ ̋ $0 ༗ঈ൛ ͋Γ Webϕʔε ϋΠϒϦο υΞϓϦ HTML5 + JavaScript shell + editor deploy→Xcode jQueryMobile ͷ ϥΠϒϥϦ ̋ $0 ˎRubyMotionҎ֎ٸᬎௐͨͷͰෆਖ਼͔֬͠Ε·ͤΜ
ൺֱ·ͱΊ Pros ωΠςΟϒΞϓϦ CocoaPods͑Δʂʂʂʂʂʂ CocoaTouchΛͬͯΕॻ͚Δ JSΑΓΦϒδΣΫτࢦͰॻ͖͍͢ Cons Android͑ͳ͍ ࠷ॳ͔Β༗ྉ
ࠓͷ RubyMotionͱ ✔ ࣗݾհ ✔ RubyMotion vs Titanium mobile/Phone Gap
✔ RubyMotion vs Objective-C RubyMotionʹΑΔiOS։ൃͷՄೳੑ ·ͱΊ
RubyMotion vs Objective-C Θ͔Γ͘͢͢ΔͨΊ vs Objective-Cͱݴ͍·ͨ͠ πʔϧνΣΠϯͱݴޠͷൺֱਖ਼͘͠ͳ͍ XcodeʴObjective-CΛ༻͍ͨඪ४తͳ։ൃͱͷൺֱ ൺֱ߲ 1.
༻͢ΔݴޠɿRuby vs Objective-C 2. ։ൃڥ ɿShell + Editor vs Xcode 3. ҆৺ײɹɹɹɿϥΠϒϥϦαϙʔτͳͲ
Ruby vs Objective-Cͦͷ̍ Objective-CͰग़དྷΔ͜ͱRubyͰ΄΅ग़དྷΔ Rubyͷඪ४ΫϥεNSObjectΛϕʔεʹ࡞ΒΕͯΔ ऑࢀরɺϙΠϯλɺGCDઐ༻ΠϯλʔϑΣΠε͋Γ ϝϞϦཧ Objective-C: ARC, MRC
RubyMotion: ARC෩ͷಠࣗཧ Πϯελϯεมʹೖ͢ΔͱΧϯτ͞ΕΔ
Ruby vs Objective-Cͦͷ̎ ܕ͚ Objective-Cɿ੩తͳܕνΣοΫ͋Γ RubyɿϏϧυ࣌ͷνΣοΫͳ͍ ϝλϓϩάϥϛϯά Objective-CɿΠϯετϩϖΫγϣϯ, performSelector, method
swizzling RubyɿΠϯετϩϖΫγϣϯ, send, define_method, instance_eval, alias_method, ΦʔϓϯΫϥε, ԋࢉࢠ(=ϝιου)Φʔόʔϩʔυ,...
Ruby vs Objective-Cͦͷ̏ จࣈྻૢ࡞ Objective-Cɿେมͦ͏ Rubyɿڧྗͳϝιου͕๛
Ruby vs Objective-Cͦͷ̐ Ϧςϥϧදه Objective-CɿਐԽͯ͠Δʂ Rubyɿγϯϓϧ
ݴޠൺֱ·ͱΊʢྑ͍ॴʣ Objective-C ੩తͳܕνΣοΫ ʑਐԽͯ͠ྑ͘ͳͬͯΔ Ruby γϯϓϧͳϧʔϧͰϝϞϦཧͰ͖Δ CRuby༝དྷͷڧྗͳϝλϓϩɾΈࠐΈͷϝιου
Objective-Cͷ։ൃڥ Xcode ิόονϦ InterfaceBuilder / StoryBoard breakpoint / LLDB ߴ͍ͱΑ͘ฉ͖·͢
ʢ͋·Γͬͯͳ͍Ͱ͢...ʣ
RubyMotionͷ։ൃڥ ࣗ༝ʹΤσΟλબ emacsͳΒmotion-mode.elͰิͱ͔͍Ζ͍Ζग़དྷΔ RubyMineʢIDEʣͰϒϨʔΫϙΠϯτଧͯΔ γΣϧ rakeʢRuby൛makeʣͰϏϧυ Interactive DebuggerʢRubyMotionͷREPLʣ guardʢϑΝΠϧมߋݕgemʣͰࣗಈςετ ib
ͱ͍͏gemΛ͏ͱInterfaceBuilder͑Δʂ
҆৺ײ Objective-C ຊՈͷ։ൃڥ CocoaPodsͰίʔυ࠶ར༻ ࠔͬͨͱ͖ʹใଟ͍ RubyMotion ຊՈͰͳ͍ͷͷiOSͷΞοϓσʔτʹଈରԠ CocoaPodsʢRubyMotionઐ༻ͷʣRubygems͑Δ ϝΠϯ։ൃऀʹຊਓʢ@watson1978͞Μʣ
None
←WWDC։࠵தͷ 2013-06-12
҆৺ײʹ͍ͭͯͷॴײ Objective-Cͷ΄͏͕ѹతͳ҆৺ײ͋Δͱࢥ͏ RubyMotionΛ͓͏ͱͨ࣌ͦ͠ΕͳΓʹ͔ࣗΒใ ΛूΊΔྗΛ͠ͳ͍ͱ͍͚ͳ͍ ͨͩɺجຊతʹࠔͬͨΒObjective-CͷίʔυΛϕλҠ২ Ͱ͖ΔͷͰͦΜͳʹࠔΒͳ͍ ຊʹࠔͬͨΒαϙʔτ͔@watson1978͞Μʹ ࣭ͯ͠ΈΔ
ࠓͷ RubyMotionͱ ✔ ࣗݾհ ✔ RubyMotion vs Titanium mobile/Phone Gap
✔ RubyMotion vs Objective-C ✔ RubyMotionʹΑΔiOS։ൃͷՄೳੑ ·ͱΊ
RubyMotionͷՄೳੑ̍ ඇৗʹ؆ܿͳίʔυΛॻ͘͜ͱ͕ग़དྷΔ ίʔυྔ͕ݮΕϝϯςφϯείετݮΔ ࠶ར༻ੑߴ·Δ UIΛDSLͰએݴతʹίʔυΛॻ͘ελΠϧʁ ͦͷͨΊʹύϑΥʔϚϯεएׯ٘ਜ਼ʁ
NSUserDefaults
None
None
RubyMotionͷՄೳੑ̎ αʔόʔαΠυͱͷ૬ੑ͕ྑ͍ʁ Railsͱ͔Sinatraͱ͔ಉ͡ݴޠͰॻ͚Δ motion-resource gemActiveRecordͱಉ͡Α͏ͳ I/FͰRESTfulAPIͱͷ௨৴͕ॻ͚Δ RailsଆAPIΛॻͨ͘ΊͷϥΠϒϥϦ͕͍ͬͯ ΔͷͰׂͱ؆୯ʹαʔόʔॻ͚Δ
Modelఆٛ ௨৴ॲཧ
ࠓͷ RubyMotionͱ ✔ ࣗݾհ ✔ RubyMotion vs Titanium mobile/Phone Gap
✔ RubyMotion vs Objective-C ✔ RubyMotionʹΑΔiOS։ൃͷՄೳੑ ✔ ·ͱΊ
·ͱΊ RubyMotioniOS։ൃʹ͓͚ΔબࢶͷҰͭʂʂ ͍Ζ͍Ζ͋Δ͚ͲͦΕͧΕదࡐదॴʂ ίʔυ͕؆ܿʹॻ͚ΔͷͰϓϩτλΠϓ ࡞Γ͍͢ͷͰʂ ͖ͦ͜ͷͷ্खͳΕʂʂʂʂʂͰؤுΔ
ͦΜͳ͜ΜͳͰ
࡞ͬͨʂʂʂʂ Shiori Shiori is a bookmark manager for github. http://github.com/ainame/Shiori
ͬͨgem BubbleWrap ProMotion NanoStoreInMotion (NanoStore from cocoapods)
σϞ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·͢
ࢀߟࢿྉ RubyMotion - Ruby for iOS and OS X http://www.rubymotion.com/
࣮ફRubyMotion // Speaker Deck https://speakerdeck.com/naoya/shi-jian-rubymotion Titanium Mobile ʙຊʹ͋ͬͨ͜Θ͍ʙ http://www.slideshare.net/haradaatsea4/titanium-mobile-16371136 PhoneGapͰֶͿϚϧνεΫϦʔϯରԠϋΠϒϦουΞϓϦ։ൃ - ୈ1ճ http://itpro.nikkeibp.co.jp/article/COLUMN/20121212/443628/ RubyMotion Metaprogramming | Clay Allsopp http://clayallsopp.com/posts/rubymotion-metaprogramming/