Questions? Feedback? powered by Olark live chat software

Features

 

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.

 

Keep your editor

With RubyMotion, you get to keep using your favorite editor. Support is provided for most editors. Xcode and Eclipse are not used in any part of the process.

 

Embrace and extend

RubyMotion comes with its own flavor of gems that can be used to extend projects or apps. For iOS and OS X, CocoaPods is also supported natively.

 

Interactive development

Our interactive console (REPL) lets you navigate and introspect the iOS, OS X and Android APIs jungle with ease, from the comfort of your terminal.

 

Builtin testing

RubyMotion comes with a behavior-driven testing framework, specifically extended for our mobile platforms, and that is integrated into every new project.

 

Debugging

RubyMotion provides a fully-functional debugger, on both the simulator and device, that will most certainly help you in case things get too hairy.

 

Support for iOS, Android and OS X

For each platform you target, the full set of native APIs is available, including those from the latest version. After development, apps can be submitted to the respective app stores.

 
 
  • iOS

  • Target from iOS 5.0 to 9.1 (latest version).
  • Access the full set of iOS APIs.
  • Build for ARM 32-bit and 64-bit.
  • Test interactively on the iOS simulator and device.
  • Vendor 3rd-party C and Objective-C libraries.
  • Submit to the iOS App Store.
 
  • Android

  • Target from Android 3.2 to 6.0 (latest version).
  • Access the full set of Android APIs.
  • Build for ARM 32-bit and 64-bit.
  • Test interactively in the Android emulator and device.
  • Vendor 3rd-party Java Archive files (JAR).
  • Submit to Google Play.
 
  • OS X

  • Target from OS X 10.7 to 10.11 (latest version).
  • Access the full set of OS X APIs.
  • Build for Intel 32-bit and 64-bit.
  • Test interactively on your Mac computer.
  • Vendor 3rd-party C and Objective-C libraries.
  • Submit to the Mac App Store.
 

Under the hood, it's all native

 
 

Unified runtime

On iOS and OS X, RubyMotion implements Ruby on top of the Objective-C runtime and Foundation classes (see how). On Android, RubyMotion implements Ruby on top of the Android Java runtime, Dalvik and ART (see how).

Thanks to this tight integration, Ruby can interface with iOS, OS X and Android very naturally at no performance cost.

You can mix Ruby with Objective-C and Java code, always have access to the latest platform APIs, and also make use of 3rd-party libraries.

 

Fully compiled

RubyMotion transforms the Ruby source code of your project into optimized, blazing-fast machine code using a revolutionary, state-of-the-art ahead-of-time (AOT) compiler, based on LLVM (see how).

On iOS and Android, our compiler generates 32-bit and 64-bit ARM code, while on OS X it generates 32-bit and 64-bit Intel code.

The original source code is never present in the application nor the code is interpreted at runtime. A typical application weighs in at less than 1MB.

 

Managed memory

It's Ruby, you don't need to think about managing memory. Ever. RubyMotion will release the objects you create when they are no longer needed.

On iOS and OS X, we provide a custom memory model, similar to Objective-C ARC in design, that does not require any extra memory or processor footprint to allocate and reclaim unused objects.

On Android, we rely on the Java runtime garbage collector for memory management.

 

Fully concurrent

Most Android devices as well as recent iOS and OS X hardware now feature multicore processors. It is important to consider the benefits of concurrency when designing an application.

RubyMotion was designed to be re-entrant and without a global lock in order to allow code to be concurrently executed.

On iOS and OS X, RubyMotion comes with a nice interface to Grand Central Dispatch that lets you balance heavy work very easily over CPU cores.

 

We got you covered

 
 

Battle-tested core

RubyMotion is based on MacRuby, a widely-used implementation of Ruby created and maintained at Apple for over 4 years. Significant efforts were put into creating a solid ahead-of-time compiler for Ruby.

Starting from a solid and stable code base, the guys who originally created MacRuby now work on RubyMotion. You're in good hands.

 

App Store compliant

RubyMotion is 100% compliant with Apple's App Store and Google Play policies. Your code is compiled ahead-of-time, never interpreted, and you access the entire set of iOS, OS X and Android public APIs.

Once compiled, a RubyMotion app looks pretty much the same as an Objective-C or Java app.