Frequently Asked Questions

 
 

What platforms can I write apps for in RubyMotion?

RubyMotion lets you write native apps for iOS (iPhone, iPad), watchOS (Apple Watch), Android (phones, tablets, TVs, wearables, etc.) and OS X (laptops and desktop computers).

What are the requirements for RubyMotion?

You will need a Mac running OS X 10.9 or higher.

For iOS development, you will also need to install the iOS SDK and join the iOS developer program in order to receive an application-signing certificate. You will need an iOS device (iPhone or iPad) if you want to physically test your application.

For OS X development, you will need to join the Mac developer program if you intend to deliver apps on the Mac App Store.

For Android development, you will need to join the Google Play program and also an Android device configured for development. Check our Guides page for the respective Getting Started manuals.

Does RubyMotion work on Windows or Linux?

RubyMotion works on Mac exclusively.

How is RubyMotion licensed?

RubyMotion is a commercial product engineered by Scratchwork Development and covered by a End User License Agreement on a per-developer basis using yearly subscription plans.

Licenses are either personal or seat-based depending on whether you are purchasing RubyMotion under your name or on behalf of a company.

What fees are applicable?

RubyMotion is a product delivered via a yearly subscription plan. Check our Download for more details. There are no royalties, hidden and per-title fees. All sales are final, but we provide a free version of our product that can also be used for evaluation purposes.

Each subscription covers one year of maintenance (software updates). Support incidents can be purchased individually for $99 per incident, and Professional subscriptions come with 4 support incidents per year. After one year, you will have the possibility to renew the subscription if you want to keep receiving software updates and using our support channel. Your copy of RubyMotion will still be working if the subscription has not been renewed.

Can I evaluate RubyMotion before buying a subscription?

We provide RubyMotion Starter, a free version of our product that can also be used for evaluation. Check out our Download page for more details. Please note that all sales are final.

How can I edit or cancel a subscription?

After you start a subscription you should receive an email containing a link to an invoice as well as a page where you can edit or cancel the subscription. All sales are final. Feel free to contact us if you have any questions.

I am a large company. Do you offer group purchases discounts?

Yes. Contact us and we can work something out.

I am a student. Do you offer discounts?

Yes. Contact us with a proof of enrollment (ex. student ID).

I am an individual developer. Can I use RubyMotion on more than one machine I own?

Yes. You are free to use RubyMotion on all of the machines you use for development.

How are software updates delivered?

RubyMotion will check once a day if a new version of the software is available and will let you know. The check only happens when you are using RubyMotion.

Is Ruby allowed on the Apple App Store?

Applications submitted to the App Store must conform to the Review Guidelines dictated by Apple. RubyMotion implements a dialect of Ruby that conforms to those rules. RubyMotion apps are fully compiled, do not download or interpret code and are using public iOS and OS X APIs through the exact same machinery as regular Objective-C apps.

Do you support Xcode or Eclipse?

While you can certainly configure Xcode and Eclipse to program in RubyMotion, we do not provide any support for these IDEs out-of-the-box. We do not believe that Xcode and Eclipse make a good environment for Ruby development (or development in general). Ruby developers tend to prefer using their favorite text editors.

Ruby also makes it very easy to write great Domain-Specific Languages that can be used as elegant alternatives to graphical user interface or data modeling tools. Check out the Gems page for examples of Ruby DSLs wrapping UI builders and database access.

What iOS, Android and OS X features can I use in my app?

All of them. Every public iOS, Android and OS X framework is supported in RubyMotion. You can naturally call Objective-C, Java and pure-C APIs from Ruby. We support the latest versions of the iOS, Android and OS X SDK. Check out our Runtime Manuals for more details.

How does RubyMotion compare to Objective-C / Swift / Java?

Objective-C and Swift are Apple's languages for iOS and OS X development. They are tied to the Xcode IDE. Java is Google's language for Android development. It is tied to the Eclipse or Android Studio IDEs.

RubyMotion lets you write the same apps you would write in Objective-C, Swift or Java, but in Ruby. It works on all platforms (iOS, OS X and Android), so you can share code. And it is not tied to any particular IDE, you can use your favorite editor.

The Ruby language also features a concise, yet powerful syntax designed for productivity and optimized for programmer happiness. Compared to Objective-C, Swift or Java, Ruby is easier to get started, and development cycles are faster.

How does RubyMotion compare to Web technologies?

There are several products that let you write mobile apps using Web technologies (HTML, CSS and Javascript). These products produce apps that use the Web view platform component in which the code runs, with a bridge in order to interface with the device functionalities.

Apps written in Web technologies are cross-platform, but come with several downsides. They run slower than native apps because they are bridged and interpreted, and they can't access the entire set of platform APIs. They don't offer an optimal user-experience and consumers will recognize them. Companies like Facebook or LinkedIn moved way from using Web technologies to write their mobile apps.

RubyMotion provides the benefits of using Web technologies without these downsides: you get to use Ruby, a high-level language optimized for productivity, while being able to call into the entire set of public native APIs for each platform you decide to target. And RubyMotion apps are statically compiled into machine code, so they run as fast as possible.

Do I need to know Objective-C or Java to use RubyMotion?

You will need to learn how to interpret Apple's and Google's interfaces and how to call them from Ruby. This is fairly straightforward, and we provide documentation in our guides to help you along the way. Beyond that, there is no need to learn the rest of the Objective-C and Java languages, which can be a daunting task for programmers not familiar with C-based languages.

The RubyMotion community has also been working on providing Ruby Gems that make the whole process even more accessible.

Can I use 3rd-party Objective-C or Java libraries?

Absolutely. Third-party Objective-C and libraries can be vendored in a RubyMotion iOS and OS X project, while Java libraries (JAR) can be vendored in a RubyMotion Android project. On iOS and OS X we also provide an integration with the CocoaPods dependency manager to make the process a bit easier.

Can I use regular Ruby gems?

Because RubyMotion implements a dialect of Ruby that is statically compiled, regular Ruby gems will not work in RubyMotion. Gems have to be specifically tailored in order to be used from RubyMotion projects. Check out the Gems page for examples.

Is RubyMotion opensource?

RubyMotion is partially-opensource and shares a great deal of code with MacRuby, a popular opensource project. Check our About page to learn more about the relationship between MacRuby and RubyMotion.

How can I stay up-to-date with RubyMotion?

You can follow us on Twitter and subscribe to the Dispatch Newsletter.