This is a talk that I gave for the Boston Ruby Group on Dec. 13, 2011. The talk covers the use of MacRuby as a Cocoa REPL for learning and exploration, and integration between MacRuby and Xcode for the development of OS X applications.
MacRuby
For fun...
and profit!
Presented by: Joshua Ballanco
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
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
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
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
MacRuby for Fun!
• REPL – Read Eval Print Loop
• Useful tool for learning, development, and
debugging
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
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!
MacRuby for Fun!
• Let’s learn CoreData!
• There sure is a lot of documentation on
http://developer.apple.com about CoreData
MacRuby for Fun!
• Let’s learn CoreData!
• There sure is a lot of documentation on
http://developer.apple.com about CoreData
• Documentation is boring :-(
MacRuby for Fun!
• Let’s learn CoreData!
• There sure is a lot of documentation on
http://developer.apple.com about CoreData
• Documentation is boring... :-(
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! :-)
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)
MacRuby for Profit!
• Install Xcode FIRST! then MacRuby
• Start Xcode, choose the MacRuby template
• Build and go!
Building and Running
• MacRuby template already contains targets
needed to compile, build, and run
• macruby_deploy does all the hard work...
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
Using Gems
• Install with sudo macgem install <gemname>
• Require Gems in rb
• Use Gems for Development
• Vendor Gems with macruby_deploy --gem
for Distribution
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/
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!