Advertisement
Advertisement

More Related Content

Advertisement
Advertisement

MacRuby for Fun and Profit

  1. MacRuby For fun... and profit! Presented by: Joshua Ballanco
  2. A quick introduction... • Been using Ruby since 2004 • MacRuby Core Team member • Worked for Apple 2006 to 2010 • Currently at Patch (AOL) • https://github.com/jballanc • @manhattanmetric
  3. Overview • Using MacRuby as a Cocoa REPL • Cocoa Development with MacRuby • Getting Started • Building and Running • Hooking Up a UI • Using Gems • Packaging and Shipping
  4. What is MacRuby? • http://www.macruby.org • http://www.macruby.org/files/ • http://www.macruby.org/files/nightlies/ • Available from RVM (but not recommended) • Source at GitHub: https://github.com/MacRuby/MacRuby
  5. What is MacRuby? • Compiling MacRuby: • Need LLVM *2.9* (see the README) • rake ; sudo rake install • Bugs – https://www.macruby.org/trac/report • MacRuby-devel mailing list • @macruby, #macruby
  6. Ruby Syntax
  7. Ruby Syntax Parser MRI’s parse.y Compiler RoxorCompiler <C++> VM (sans GVL) LLVM (with JIT) RoxorVM & RoxorCore <C++> Objective-C Runtime
  8. MacRuby for Fun! • REPL – Read Eval Print Loop
  9. MacRuby for Fun! • REPL – Read Eval Print Loop • Useful tool for learning, development, and debugging
  10. MacRuby for Fun! • REPL – Read Eval Print Loop • Useful tool for learning, development, and debugging • LISP, Python, Ruby all benefit from a REPL • C, C++, Java do not
  11. MacRuby for Fun! • REPL – Read Eval Print Loop • Useful tool for learning, development, and debugging • LISP, Python, Ruby all benefit from a REPL • C, C++, Java do not • Obj-C ...has MacRuby!
  12. MacRuby for Fun!
  13. MacRuby for Fun! • Let’s learn CoreData!
  14. MacRuby for Fun! • Let’s learn CoreData! • There sure is a lot of documentation on http://developer.apple.com about CoreData
  15. Core Data Utility Tutorial Data Management 2010-09-19
  16. Contents Introduction Introduction to Core Data Utility Tutorial 7 Who Should Read This Document 7 Organization of This Document 7 See Also 8 Chapter 1 Overview of the Tutorial 9 Task Goal 9 Chapter 2 Creating the Project 11 Create a New Project 11 Create the project 11 Link the Core Data framework 11 Adopt Garbage Collection 12 What Happened? 12 Chapter 3 Creating the Managed Object Model 13 Specifying the Entity 13 Create the Managed Object Model 13 Create the Model Instance 13 Create the Entity 14 Add the Attributes 14 Add a Localization Dictionary 15 Instantiate a Managed Object Model 16 Build and Test 16 Complete Listing 16 Chapter 4 The Application Log Directory 19 The applicationLogDirectory Function 19 Update the main Function 20 Build and Test 20 Chapter 5 Creating the Core Data Stack 21 Overview 21 The managedObjectContext Function 21 Create the Context Instance 21 Set up the Persistent Store Coordinator and Store 22 3 2010-09-19 | © 2005, 2010 Apple Inc. All Rights Reserved.
  17. CHAPTER 8 Complete Source Listings if ([key isEqualToString:@"processID"]) { self.processID = 0; } else { [super setNilValueForKey:key]; } } @end 38 The Run Class 2010-09-19 | © 2005, 2010 Apple Inc. All Rights Reserved.
  18. MacRuby for Fun! • Let’s learn CoreData! • There sure is a lot of documentation on http://developer.apple.com about CoreData
  19. MacRuby for Fun! • Let’s learn CoreData! • There sure is a lot of documentation on http://developer.apple.com about CoreData • Documentation is boring :-(
  20. setup.rb
  21. MacRuby for Fun! • Let’s learn CoreData! • There sure is a lot of documentation on http://developer.apple.com about CoreData • Documentation is boring... :-(
  22. MacRuby for Fun! • Let’s learn CoreData! • There sure is a lot of documentation on http://developer.apple.com about CoreData • Documentation is boring... :-( • REPLs are fun! :-)
  23. MacRuby for Profit! • Things you will need: • MacRuby nightly build (or 0.11 when it comes out) • Xcode 4.2 (v4.1 is definitely broken, v3- series may still work) • Gumption (and the mailing list address)
  24. MacRuby for Profit! • Install Xcode FIRST! then MacRuby • Start Xcode, choose the MacRuby template • Build and go!
  25. Building and Running • MacRuby template already contains targets needed to compile, build, and run • macruby_deploy does all the hard work...
  26. Hooking Up a UI • MacRuby classes are Objective-C classes • Define outlets with attr_* methods • Any MacRuby method with a single argument named “sender” can be used as an action
  27. Using Gems • Install with sudo macgem install <gemname> • Require Gems in rb • Use Gems for Development • Vendor Gems with macruby_deploy --gem for Distribution
  28. Packaging and Shipping • App bundles generated by macruby_deploy are relocatable to machines without MacRuby (or even with incompatible versions of MacRuby) • Bundles can be signed for App store distribution with the codesign CLI tool • Excellent blog post at: http://astonj.com/ tech/how-to-submit-your-macruby-app-to- the-mac-app-store/
  29. Bonus!
  30. MacRuby... ...and you didn’t even know it!!! • CocoaPods! • https://github.com/CocoaPods/CocoaPods • Like Gems for iOS (and OS X... and MacRuby) • Uses MacRuby under the covers • Complemented by Laurent Sansonetti!
  31. Thank you! *Flame transition quota fulfilled
  32. Questions? *Flame transition quota fulfilled

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
Advertisement