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
Sure, I could learn Objective-C but...
Search
Kod.io
October 26, 2013
Programming
1
94
Sure, I could learn Objective-C but...
By Joshua Ballanco
http://kod.io
Kod.io
October 26, 2013
Tweet
Share
More Decks by Kod.io
See All by Kod.io
Our future is in our past or whatever
kodio
0
70
You should learn Go!
kodio
1
140
Daha iyi Geliştirme Ortamı için: Vagrant
kodio
0
77
Building Next-Generation iOS Apps with AFNetworking 2.0
kodio
2
390
Reactive Principles
kodio
1
150
AngularJS vs. Ember.js vs. Backbone.js
kodio
1
520
iBeacons: Interacting with the physical world using Bluetooth LE
kodio
1
110
Go: a simple programming environment
kodio
2
180
Why I had to write a client side framework for Koding.
kodio
1
99
Other Decks in Programming
See All in Programming
Nuxt Server Components
wattanx
0
120
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
3
1.9k
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
110
How to stabilize UI tests using XCTest
akkeylab
0
140
[SF Ruby Feb'26] The Silicon Heel
palkan
0
130
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
400
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
230
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
1.1k
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
400
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
130
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
230
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
800
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
The Curious Case for Waylosing
cassininazir
0
280
Code Review Best Practice
trishagee
74
20k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
330
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
240
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
160
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
170
A Soul's Torment
seathinner
5
2.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Transcript
Sure, I could learn Objective-C but... Isn’t there something better?
Joshua Ballanco @manhattanmetric https://github.com/jballanc
Joshua Ballanco @manhattanmetric https://github.com/jballanc
What is Objective-C? • Object Oriented • Message Passing •
SmallTalk Inspired • Strict Superset of C
Objective-C Explosion Why?
Duh...
Is there another option?
What is Ruby? • Object Oriented • Message Passing •
SmallTalk Inspired • Strict Superset of C RubyMotion is Ruby for iOS and OS X
Learning a New Language Stage 1 I understand what you’re
saying... but I have no idea how to reply
Learning a New Language Stage 2 I know how to
construct statements, but they are direct translations from that other language I know
Learning a New Language Stage 3 I get it!
How to learn RubyMotion? • If you don’t know Objective-C...
• GREAT! Go for it!
• Directly Translate • Apply Ruby Refactorings • Re-Open Core
Types (Monkey-Patching) • Build Modules • Use Wrappers How to learn RubyMotion?
JTGestureBasedTableView https://github.com/jamztang/JTGestureBasedTableViewDemo
GestureTable Sample https://github.com/HipByte/RubyMotionSamples/tree/master/ios/GestureTable
Direct Translation Obj-C RubyMotion
Direct Translation
Direct Translation
Direct Translation Obj-C RubyMotion
Direct Translation Obj-C RubyMotion
Direct Translation Obj-C RubyMotion
Direct Translation Obj-C RubyMotion
Ruby Refactoring
Ruby Refactoring
Re-Open Core Classes
Modules
Modules
Wrappers http://motionwrappers.com/
Wrappers http://motionwrappers.com/
Why should I use Objective-C • Speed • Interface directly
with C libraries • Like long method names
Why should I use RubyMotion • Development speed • Clear,
concise business logic • Use high-level wrapper libraries
Moral of the Story... Use the best tool for the
job... and there is more than one tool!