@justincampbell
bit.ly/dividata-ios-beta
- iPhone 3G/App Store
- First Mac
- Inexperienced
- Everything was NDA
- Movitas
- Only Mac user in office
- PhoneGap/SIP
- RubyMotion
- May 2012
- Prototype in 4 hours
- Finished/polished 1 month
- Laurent Sansonetti (@lrz)
- HipByte
- MacRuby
- $199
- Ruby compiler for iOS
- Rake workflow
- 1.9 (ish)
- Missing require/eval
- Named-parameters
[@"Ruby"
compare:@"ruby"
options:NSCaseInsensitiveSearch];
NSString
-compare:options:
"Ruby".compare("ruby",
options: NSCaseInsensitiveSearch)
"Ruby".compare "ruby",
options: NSCaseInsensitiveSearch
def application(application,
didFinishLoadingWithOptions: options)
# ...
end
String < NSMutableString
Array < NSMutableArray
Hash < NSMutableDictionary
Time < NSDate
...
alias foo= setFoo:
alias foo? isFoo
alias [] objectForKey:
alias []= setObject:forKey:
pointer = Pointer.new :object
Dispatch::Queue.concurrent.async do
Dispatch::Queue.main.sync do
puts "Hi!"
end
end
New App
Dividata + REPL
TestFlight
Questions?
@justincampbell