Wie?
• MacRuby
• RubyMotion
Freitag, 26. Oktober 12
Slide 6
Slide 6 text
Historie
• 2001: RubyCocoa
• 2006: WWDC Session zu RubyCocoa
• MacRuby: seit 2007 in Entwicklung
• Entwickler Laurent Sansonetti (lrz) arbeitet
Vollzeit bei Apple daran
• 2012: RubyMotion ohne Apple Unterstützung
Freitag, 26. Oktober 12
Slide 7
Slide 7 text
Technik
• Keine Bridge
• Neuimplementierung mit CoreFoundation
• Nutzt die Objective-C Runtime und LLVM
• Hohe Performance
• Kompatibilität
Freitag, 26. Oktober 12
Slide 8
Slide 8 text
Freitag, 26. Oktober 12
Slide 9
Slide 9 text
Entwicklung
• Kein Xcode sondern Texteditor und Terminal
• Rake
• Interaktive Konsole (REPL)
• App Store kompatibel
Freitag, 26. Oktober 12
Slide 10
Slide 10 text
Features
• Unterstützung für spezielle Gems
• Testing
• Tooling: IB, Storyboards, Crash Reports,
Instruments
Freitag, 26. Oktober 12
Slide 11
Slide 11 text
Rake
• Ruby de-facto Build System
• Rakefile ist in Ruby geschrieben
• Deployment über Kommandozeile:
rake simulator device_family=ipad
• Ausführung von Tests:
rake spec
Freitag, 26. Oktober 12
Slide 12
Slide 12 text
Interaktive Shell
• Zur Laufzeit beliebigen Code ausführen
• -> Besseres Debugging
• -> Kleinere Edits on-the-fly
• Bisher nur im Simulator möglich
Freitag, 26. Oktober 12
Slide 13
Slide 13 text
Demo: Shell
Freitag, 26. Oktober 12
Slide 14
Slide 14 text
Beispiel
iOS "Hello World" -> Twitter Client!
Freitag, 26. Oktober 12
Slide 15
Slide 15 text
• Rakefile - ersetzt .xcodeproj
• app - Code
• resources - Resourcen
• spec - Test Spec (BDD ist in
RubyMotion integriert)
Freitag, 26. Oktober 12
Slide 16
Slide 16 text
Zugriff auf Twitter
• Ganz einfach dank Gems!
• :( - leider nicht, Gems müssen an RubyMotion
angepasst werden
Freitag, 26. Oktober 12
Slide 17
Slide 17 text
Cocoa APIs
• Werden 1:1 übernommen
• Laut lrz sollen DSLs aus der Community
kommen
• Ruby Standardbibliotheken fehlen, daher gibt
es z.B. bubble-wrap oder sugarcube
• CocoaPods sind einfach integrierbar
Freitag, 26. Oktober 12
Slide 18
Slide 18 text
Twitter ViewController
• IB, Storyboards
• Cocoa, ggf. mit Auto-Layout
• sugarcube
Freitag, 26. Oktober 12
Slide 19
Slide 19 text
Demo
Freitag, 26. Oktober 12
Slide 20
Slide 20 text
Testing
• Bringt eigene Variante des BDD-Frameworks
Bacon mit
Freitag, 26. Oktober 12
Slide 21
Slide 21 text
Demo: Testen mit
RubyMotion
Freitag, 26. Oktober 12
Slide 22
Slide 22 text
Beispiel 2
OS X Twitter Client
Freitag, 26. Oktober 12
Slide 23
Slide 23 text
Unterschiede
• Workflow hängt an Xcode
• Besserer Support für Gems
• Natürlich AppKit statt UIKit
• Keine direkte Integration von Tests
• Keine interaktive Shell
Freitag, 26. Oktober 12
Slide 24
Slide 24 text
Demo
Freitag, 26. Oktober 12
Slide 25
Slide 25 text
Fragen?
Freitag, 26. Oktober 12
Slide 26
Slide 26 text
Literatur
• Folien und Beispielcode: http://vu0.org/ruby
• MacRuby: http://macruby.org
• RubyMotion: http://rubymotion.com
• Screencasts: http://pragmaticstudio.com/
screencasts/rubymotion und http://
motioncasts.tv
Freitag, 26. Oktober 12