Entwicklung für OS X und iOS mit Ruby

218 views

Published on

German talk on OS X and iOS development with Ruby.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
218
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Entwicklung für OS X und iOS mit Ruby

  1. 1. Entwicklung für OS X und iOS mit Ruby Macoun 2012 Boris Bügling (@NeoNacho)Freitag, 26. Oktober 12
  2. 2. Wozu? • Rapid Prototyping • Sharing von Backend Code • Glücklicher ohne Xcode • Lerneffekt • SpaßFreitag, 26. Oktober 12
  3. 3. Ruby • interpretiert, dynamisch typisiert • alles ist ein Objekt • blocks • Meta-Programmierung • gemsFreitag, 26. Oktober 12
  4. 4. Ruby • 5.times { print "Hello world!" } • exit unless "restaurant".include? "aura" • [toast, cheese, wine].each { |food| print food.capitalize }Freitag, 26. Oktober 12
  5. 5. Wie? • MacRuby • RubyMotionFreitag, 26. Oktober 12
  6. 6. 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ützungFreitag, 26. Oktober 12
  7. 7. Technik • Keine Bridge • Neuimplementierung mit CoreFoundation • Nutzt die Objective-C Runtime und LLVM • Hohe Performance • KompatibilitätFreitag, 26. Oktober 12
  8. 8. Freitag, 26. Oktober 12
  9. 9. Entwicklung • Kein Xcode sondern Texteditor und Terminal • Rake • Interaktive Konsole (REPL) • App Store kompatibelFreitag, 26. Oktober 12
  10. 10. Features • Unterstützung für spezielle Gems • Testing • Tooling: IB, Storyboards, Crash Reports, InstrumentsFreitag, 26. Oktober 12
  11. 11. Rake • Ruby de-facto Build System • Rakefile ist in Ruby geschrieben • Deployment über Kommandozeile: rake simulator device_family=ipad • Ausführung von Tests: rake specFreitag, 26. Oktober 12
  12. 12. Interaktive Shell • Zur Laufzeit beliebigen Code ausführen • -> Besseres Debugging • -> Kleinere Edits on-the-fly • Bisher nur im Simulator möglichFreitag, 26. Oktober 12
  13. 13. Demo: ShellFreitag, 26. Oktober 12
  14. 14. Beispiel iOS "Hello World" -> Twitter Client!Freitag, 26. Oktober 12
  15. 15. • Rakefile - ersetzt .xcodeproj • app - Code • resources - Resourcen • spec - Test Spec (BDD ist in RubyMotion integriert)Freitag, 26. Oktober 12
  16. 16. Zugriff auf Twitter • Ganz einfach dank Gems! • :( - leider nicht, Gems müssen an RubyMotion angepasst werdenFreitag, 26. Oktober 12
  17. 17. 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 integrierbarFreitag, 26. Oktober 12
  18. 18. Twitter ViewController • IB, Storyboards • Cocoa, ggf. mit Auto-Layout • sugarcubeFreitag, 26. Oktober 12
  19. 19. DemoFreitag, 26. Oktober 12
  20. 20. Testing • Bringt eigene Variante des BDD-Frameworks Bacon mitFreitag, 26. Oktober 12
  21. 21. Demo: Testen mit RubyMotionFreitag, 26. Oktober 12
  22. 22. Beispiel 2 OS X Twitter ClientFreitag, 26. Oktober 12
  23. 23. Unterschiede • Workflow hängt an Xcode • Besserer Support für Gems • Natürlich AppKit statt UIKit • Keine direkte Integration von Tests • Keine interaktive ShellFreitag, 26. Oktober 12
  24. 24. DemoFreitag, 26. Oktober 12
  25. 25. Fragen?Freitag, 26. Oktober 12
  26. 26. 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.tvFreitag, 26. Oktober 12

×