Terminal-based workflow
Create a project. Run your app in the simulator. Deploy on your device. Create an App Store package. Everything is just one command away.
RubyMotion projects are based on Rake. The Rakefile contains the entire project configuration with sensible default values.
Interactive development
RubyMotion comes with an interactive console that lets you navigate and introspect the iOS and OS X API jungle with ease, from the comfort of your terminal.
The console is connected to your application running in the simulator. Changes you interactively make are reflected in the app in real time.
Keep your editor
Thanks to its command-line infrastructure and its ctags support, RubyMotion can easily be integrated in almost any text editor.
Do you rock with Vim, Emacs or TextMate? You don't need to leave your favorite editor in order to use RubyMotion.
Embrace and extend
RubyMotion comes with its own flavor of gems that can be used to extend projects or apps. You simply require the gem in your project's Rakefile.
Want a DSL to deal with CoreData? Submit builds to TestFlight? Use Objective-C dependencies from CocoaPods? There is a wrapper for that.
Testing
RubyMotion comes with a behavior-driven testing framework, extended for iOS and OS X, and integrated into every new project.
Functional and integration tests are covered. RubyMotion projects are suitable for test-driven development for the start.
Debugging
Your app crashed? It's okay. Crash reports are annotated with proper debugging information so that you know exactly where to look in your code.
RubyMotion also provides a fully-functional debugger on both the simulator and device that will most certainly help you in case things get too hairy.
RubyMotion implements Ruby on top of the Objective-C runtime and Foundation classes. Thanks to this tight integration, Ruby can interface with iOS and OS X very naturally at no performance expense.
You can mix Ruby and Objective-C code, always have access to the latest C and Objective-C iOS and OS X APIs, and also make use of 3rd-party frameworks.
RubyMotion transforms the Ruby source code of your project into optimized, blazing-fast machine code using a revolutionary, state-of-the-art static compiler, based on LLVM.
The original source code is never present in the application bundle, neither the code is interpreted. A typical application weights less than 1MB.
Managed memory
It's Ruby, you don't need to think about managing memory. Ever. RubyMotion will by itself release the objects you create when they are no longer needed.
Our memory model, similar to Objective-C ARC in design, does not require any extra memory or processor footprint to allocate and reclaim unused objects.
Fully concurrent
Shipping iOS and OS X devices such as iPhone, iPad and Mac now feature multicore processors. RubyMotion was designed to be re-entrant and without a global lock in order to allow code to be concurrently executed.
RubyMotion comes with a nice interface to Grand Central Dispatch that lets you balance heavy work very easily over CPU cores
Ruby is a very high-level programming language designed to make humans productive and happy. It has a concise and flexible syntax that can be used to express powerful algorithms in very little code.
While Ruby was designed on the same semantics as Objective-C, it is syntaxically different. Ruby has no header files, no complicated syntax to define classes, properties or builtin types, and doesn't suffer from single namespace issues. We can go on. And Ruby offers many more features, while remaining simpler.
RubyMotion brings the Ruby language on iOS and OS X, allowing you to make use of Apple's frameworks from a very convenient and productive language.
You already know Ruby? You can write iOS and OS X apps, today.
Ruby has a reputation of being a slow language, due to problems in its historical implementation. Make no mistake, RubyMotion is not slow. Quite the contrary.
RubyMotion compiles Ruby and activates a load of performance optimizations, such as inline method caching, immediate fixed and floating numeric types, zero-cost exceptions, promotion of variables into CPU registers, cached constant lookups, tail-call optimization, dead code elimination, and many more.
RubyMotion makes Ruby as fast as Objective-C, if not faster in certain cases. RubyMotion apps start as fast as Objective-C ones and use the same amount of memory.
Your app will be so fast your fingers will be delighted.
RubyMotion is based on MacRuby, a widely-used implementation of Ruby created and maintained by Apple for over 4 years.
Starting from a solid and stable code base, the guys who originally created MacRuby now work on RubyMotion. You're in good hands.
RubyMotion is 100% compliant with Apple's App Store policies. Your code is compiled ahead-of-time, never interpreted, and you access the entire set of iOS and OS X public APIs.
At the end, a RubyMotion app looks pretty much the same as an Objective-C app.