Skip to content

Awesome RubyMotion

RubyMotion is an implementation of the Ruby programming language that compiles into native app's that run on iOS, macOS and Android. RubyMotion is a commercial product created by Laurent Sansonetti for HipByte and is based on MacRuby for macOS. RubyMotion works exclusively on macOS.

This list categorized community-driven collection of awesome RubyMotion example apps, libraries, tools, frameworks, software and resources. Sharing, suggestions and contributions are always welcome!

Please take a look at the contribution guidelines and quality standard first.

Awesome

Apps

Example Android Apps

Example iOS Apps

Example Hybrid (iOS/Andriod) App's

RubyMotion Hybrid Sample - Example from HipByte of a RubyMotion hybrid (iOS + Android) app.

Example macOS Apps

Example tvOS Apps

  • TvOS RubyMotionSamples - Collection of RubyMotion applications for code samples by HipByte the creators of RubyMotion.

Open Source macOS Apps

Open Source iOS Apps

  • Buku-live-ios-rubymotion - iOS app built in rubymotion for music festival RFID activation.
  • BeerJudge - iOS app for identifing different off flavors and aromas in a beer.

Propriety macOS Apps

  • Versatil Markdown - Note taking app built around Markdown and geared for power users.

Propriety iOS Apps

Developer Tools

Editors & RM

Libraries, Frameworks and Wrappers

Android

Because Android support is quite new we're keeping the libraries together in this section.

  • BluePotion - BluePotion is the Android version of RedPotion. (ALPHA).
  • Toaster - RubyMotion-android 'Toast' gem. Makes working with Android toasts really easy.
  • Motion-maven - motion-maven lets you automatically manage 3rd-party Java dependencies in RubyMotion for Android projects using Maven.

Apple API Wrappers

  • Motion.h - Expose iOS and macOS system libraries in RubyMotion.
  • MapKitWrapper - Make dealing with MapKit less painful for RubyMotion.
  • Medic - Is HealthKit's verbose and convoluted API driving you mad? Quick! You need a medic.
  • Motion-accessibility - Making accessibility accessible. RubyMotion Wrappers around the UIAccessibility protocols. Easily interact with Apple's impressive array of assistive technologies, including VoiceOver.
  • Vendor - RubyMotion StoreKit Wrapper that allows you to buy, restore and get product info on your in app purchases and subscriptions.
  • Motion-addressbook - RubyMotion wrapper around the iOS & macOS Address Book frameworks.
  • Helu - RubyMotion wrapper for the Store Kit Framework.
  • Motion-speech - Easy text-to-speech wrapper for AVSpeechSynthesizer in iOS 7.
  • Motion-keychain - The motion-keychain gem is a simple wrapper for Keychain on iOS and macOS. Makes using Keychain APIs as easy as NSUserDefaults.
  • Motion-settings-bundle - Create a Settings.bundle for your RubyMotion app.
  • Motion-Social - Wrapper around the Social Framework.

Authorization

  • Can_i - RubyMotion wrapper providing a simple DSL for role authorization, similar to the CanCan gem.
  • motion-authorization - Simple authorization for RubyMotion. Inspired by CanCan and Pundit.

Data Protocols

  • Motion-csv - RubyMotion friendly CSV parser gem.
  • Meteor-motion - Wrapper for Meteor DDP with support for Motion Model.

Database

  • Motion-firebase - RubyMotion wrapper for the Firebase SDK.
  • Yapper - ORM for YapDatabase which is schemaless, very fast (thanks to YapDatabase's architecture), has chainable criteria, one-many relationships, on-the-fly reindexing and is thread-safe.
  • Couchmotion - API for using Couchbase(CouchDB) a schemaless database with Rubymotion for Android and iOS.
  • Motion-sqlite3 - Minimal wrapper over the SQLite 3 C API for RubyMotion.

Debugging & Error Reporting

  • Motion-reveal - Easy way to add the Reveal framework to your Rubymotion project.
  • Crittercism - Easily add crash reporting to your RubyMotion app with Crittercism.
  • Motion_print - RubyMotion friendly console logger and debugging tool. Use it to output pretty formatted objects to the REPL.
  • Awesome_print_motion - Port of the awesome_print gem to RubyMotion.
  • Motion-colorize - Add some color to your RubyMotion output.
  • Motion-xray - iOS Inspector that runs inside your app, so you can debug and analyze from your device in real-world situations.

Dependencies Management

  • MotionBundler - Require and mock Ruby gems (including their dependencies) within RubyMotion applications.
  • Motion-acknowledgements - This gem makes it easy to include the CocoaPods acknowledgements file in your application.

Device support

Encryption

  • Motion-bitmask - Simple implementation of generic bitmasks for RubyMotion.
  • Rm-digest - MD5 and SHA1 digest for RubyMotion (gem).

Frameworks

  • BubbleWrap - Collection of (tested) helpers and wrappers used to wrap CocoaTouch code and provide more Ruby like APIs.
  • Sugarcube - These extensions hope to make development in RubyMotion more enjoyable by tacking 'UI' methods onto the base classes (String, Fixnum, Numeric). With sugarcube, you can create a color from an integer or symbol, or create a UIFont or UIImage from a string.
  • RubyMotionQuery - RMQ - UI Library for RubyMotion. Fast, non-polluting, & chaining; it’s like jQuery for RubyMotion + stylesheets, animations, events, and more.
  • MotionPrime - MotionPrime is yet another framework written on RubyMotion for creating really fast iOS applications.
  • Elevate - Stop scattering your domain logic across your view controller. Consolidate it to a single conceptual unit with Elevate.
  • RedPotion - RedPotion combines RMQ, ProMotion, CDQ, AFMotion, and more for the perfect mix to develop in RubyMotion fast.
  • Motion-support - Port of ActiveSupport to RubyMotion.
  • ProMotion - Full featured RubyMotion framework that makes iPhone development less like Objective-C and more like Ruby, designed to get up and running fast.
  • ProMotion-XLForm - ProMotion-XLForm is a ProMotion plugin for XLForm.
  • ProMotion-form - ProMotion::FormScreen - forms the ProMotion way.
  • ProMotion-iap - ProMotion-iap is in-app purchase notification support for the popular RubyMotion gem ProMotion.
  • ProMotion-menu - RubyMotion gem allowing you to easily setup a facebook or Path style hidden slide menu easily with the ProMotion gem.
  • ProMotion-push - Push notification support for ProMotion.
  • ProMotion-map - ProMotion::MapScreen gem. Extracted from ProMotion core.

Game Development

  • Joybox - Cocos2D & Box2D Wrapper for RubyMotion.

Graphical User Interface

GUI Frameworks

  • IB - RubyMotion Interface Builder support, including outlets and actions.
  • Teacup - Community-driven DSL for creating user interfaces on the iPhone.
  • MotionKit - The RubyMotion layout and styling gem.
  • Motion-stylez - RubyMotion stylesheet library based off RMQ.
  • Purplish-frame - Make working with rects, sizes and points more convenient with RubyMotion for iOS & macOS.

Autolayout

Input

  • MIMInputToolbar - Input accessory view for your UITextFields and UITextViews.
  • Motion-Wiretap - Wrapper for KVO, gestures, UIControl events, and procs. Okay okay it's pretty much ReactiveCocoa in RubyMotion.

iOS

  • Geomotion - Better iOS Geometry with RubyMotion.
  • Walt - Frictionless, hash-based iOS animations.
  • AccordionView - Create and add Accordions to your UIViews.
  • Motion-wizard - Gem to create wizard like view controllers in iOS.
  • Motion-imager - Interactive iOS image viewer that does it all: double tap to zoom, flick to dismiss, et cetera.
  • Motion Swipe - Tinder-like swipe gem.
  • Motion-dynamic-type - Simplifying even further iOS 7's Dynamic Type.
  • Indoctrinator - Indoctrinator is a RubyMotion gem that provides a Path style tutorial view for iOS applications.
  • Motion-egg - Add an Easter egg to your app.

Forms

  • MenuMotion - RubyMotion wrapper for creating macOS menus.
  • Better_toolbar - Better way to work with toolbars.
  • EverydayMenu - Easy way to define menu items and visually lay out menus for your macOS apps.
  • StatusBar - Notifications for the statusbar.

Icons

Hybrid

Element Wrappers

Graphic Libraries

  • Motion-Plot - RubyMotion wrapper for CorePlot.
  • Motion-ocr - RubyMotion wrapper for the OCR engine Tesseract.

Localization

Models & Core Data

  • MotionModel - Simple Model, Validation, and Input Mixins for RubyMotion.
  • NanoStoreInMotion - Wrapper for NanoStore, a lightweight schema-less key-value document database based on sqlite.
  • MotionDataWrapper - Intuitive querying and persistence of Core Data models, using Xcode to define entities, validations, relationships and migrations.
  • Core Data Query - CDQ - Easy-to-set-up library for using Core Data without Xcode.
  • Motion-bindable - Create two-way bindings between your models and view objects (or any other object.)
  • Turnkey - Utility for saving custom objects to NSUserDefaults using NSKeyedArchiver and NSKeyedUnarchiver.
  • PackingPeanut - App persistent data for RubyMotion Android and iOS.

Networking

  • RackMotion - Intercept and alter HTTP requests and responses in RubyMotion.
  • Motion-net-service - RubyMotion wrapper providing a simple DSL for the Bonjour (NSNetService) zero configuration network protocol.
  • Apex - Apex is a RubyMotion web framework for macOS. It uses GCDWebServer under the hood and provides a Sinatra-like router and DSL.
  • AFMotion - RubyMotion wrapper for AFNetworking.

Project Management

  • Motion-schemes - Expand RubyMotion build system to support building multiple apps from one project.
  • Motion-config-vars - Heroku-style environment configuration for RubyMotion.
  • Motion-env - Sync ENV variables between Rakefile and RubyMotion.
  • Motion-my_env - Simple environment variable solution for RubyMotion.

SaaS API Wrappers

Scheduling

  • Motion-launchpad - Gem providing a DSL allowing you to schedule events on specific launches of your application. 'motion-takeoff' only supplies displaying an alert, this gem executes any code block.
  • Motion-takeoff - Gem for scheduling stuff. You can use motion-takeoff to display messages at certain launch counts and schedule local notifications.

Screenshots

Software Design Patterns

Templates

App project templates

Testing

  • MotionFixtures - Simple support for test fixtures.
  • WebStub - Easily stub out HTTP responses in RubyMotion specs.
  • Motion-stump - Stubbing and mocking for RubyMotion.
  • Motion-frank - Gem to use integrate frank-cucumber into RubyMotion projects.
  • Motion-crescentia - RubyMotion wrapper for the Calabash BDD framework.
  • Motion-facon - Port of Facon mocking library to RubyMotion.
  • Guard-motion - Guard::Motion automatically run your RubyMotion specs (much like autotest).
  • Motion-instabug - motion-instabug allows RubyMotion projects to easily embed the Instabug SDK and be submitted to the Instabug platform.
  • Motion-juxtapose - Screenshot-driven assertions for testing Rails and RubyMotion applications.
  • Test Sweet - Integration testing your RubyMotion applications the simple and sweet way.

Updates

  • Motion-sparkle - motion-sparkle makes it easy to use Sparkle with your RubyMotion projects.

Books

Tutorials

iOS Tutorials

macOS Tutorials

Chapters from the book Building Mac macOS apps with RubyMotion.

Tutorial Screencasts

Presentations

Other Resources

Where to learn about RubyMotion and discover new RubyMotion libraries, projects and trends.

Community Resources

License

CC0

Thanks

Thanks to Clay Allsopp who created the Motion Toolbox list. Thanks to all contributors, you're awesome and wouldn't be possible without you!

Other Awesome Lists

Other amazingly awesome lists can be found in the Awesome list.