MacRuby is a Ruby implementation that can be used to write Cocoa applications for Mac OS X. It allows Ruby code to interact with the Cocoa frameworks and Objective-C classes. The presentation introduces MacRuby and demonstrates how to use the MacRuby REPL for learning Core Data, build a MacRuby project, hook up a user interface with Ruby methods, use Ruby gems, and package applications for distribution.
How AI, OpenAI, and ChatGPT impact business and software.
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
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!
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 :-(
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/
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!