RubyMotion is a new development toolchain that allows you to build iOS apps using Ruby created by Laurent Sansonetti, a former Apple engineer and contributor to the MacRuby project. It has garnered a lot of attention the past few weeks and some detailed reviews have already been written:
- Exclusive: building native iOS apps with RubyMotion (ArsTechnica)
- RubyMotion – Ruby for iOS review (Matt Aimonetti, author of MacRuby – The Definitive Guide)
- RubyMotion screencast (The Pragmatic Studio)
The MacRuby project (which is an open-source project supported by Apple) allows developers to create Mac OS X apps using ruby, however it doesn’t work with iOS. MacRuby relies on the Garbage Collected (GC) Objective-C runtime that isn’t available on iOS. With the introduction of ARC for iOS and Mac OS X Apple will likely drop support for the garbage collected (GC) runtime in a future version of Mac OS X and won’t bother to bring it to iOS. This move by Apple called into question the future of MacRuby for OS X and made the prospect of developing iOS apps using ruby look even more remote.
Enter RubyMotion. It takes a different approach than MacRuby and based on early results looks to be a good solution for rubyists looking to build iOS apps. However, the lack of support for creating UI elements in Interface Builder, dependence on Apple’s developer tools and SDKs, and other risks are being called into question already as well. It will be interesting to see Apple’s reaction to RubyMotion, especially considering that Sansonetti is a former employee and MacRuby contributor. I’ve bought my copy and am hoping the project succeeds and finds its way back to OS X too.