Awesome Rubymotion – Massive Collection of Resources – You Ever Wondered To Get
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!
Contents
- Apps
- Developer Tools
- Editors & RM
- Libraries, Frameworks and Wrappers
- Android
- Apple API Wrappers
- Authorization
- Data Protocols
- Database
- Debugging & Error Reporting
- Dependencies Management
- Device support
- Encryption
- Frameworks
- Game Development
- Graphical User Interface
- Graphic Libraries
- Localization
- Models & Core Data
- Networking
- Project Management
- SaaS API Wrappers
- Scheduling
- Screenshots
- Software Design Patterns
- Templates
- Testing
- Updates
- Books
- Tutorials
- Presentations
- Resources
- Thanks
- Other Awesome Lists
Apps
Example Android Apps
- Android RubyMotionSamples – Collection of RubyMotion applications for code samples by HipByte the creators of RubyMotion.
- Rubymotion-android-cookbook – Awesome rm cookbook examples for android.
Example iOS Apps
- IOS RubyMotionSamples – Collection of RubyMotion applications for code samples by HipByte the creators of RubyMotion.
- Custom Table View Cell with IB and RM – Custom Table View Cell using Interface Builder with RubyMotion.
- MotionKit iOS Samples – iOS Example Apps made with MotionKit.
- Motion Dropbox Example – App for demonstrating how to use official Dropbox API v2 SDK.
- Big Nerd Ranch Guide to iOS Programming Example in RubyMotion – RubyMotion code examples from the book.
- Motion-webview – Simple RubyMotion example project to wrap a full-screen HTML5 app into an iOS app.
Example Hybrid (iOS/Andriod) App’s
RubyMotion Hybrid Sample – Example from HipByte of a RubyMotion hybrid (iOS + Android) app.
Example macOS Apps
- MacOS RubyMotionSamples – Collection of RubyMotion applications for code samples by HipByte the creators of RubyMotion.
- Mctv-mac-osx – Demo Pomodoro Technique Timer App.
- Motion-osx-ib – This is an example on how to use the ib gem in a macOS RubyMotion 2.0 application.
- Motion-treeview-coredata – Port of the example from Connecting NSOutlineView to Core Data in 10.6 Part 1: Ordered Trees to RubyMotion.
- Rm-osx-kartta – RubyMotion / macOS map viewer for Finnish topographical maps.
- MotionKit macOS Samples – macOS Example Apps made with MotionKit.
- Rubymotion-avfoundation – Simple OSX app using AVFoundation to stream, record, and transcode video.
- Motion SourceList Boilerplate – RubyMotion boilerplate app for Mac macOS implementing a view based Source List.
- Menubar-popover – Example app to show how to use NSPopopver from the menubar.
Example tvOS Apps
- TvOS RubyMotionSamples – Collection of RubyMotion applications for code samples by HipByte the creators of RubyMotion.
Open Source macOS Apps
- Timer-for-tick GitHub project – RubyMotion menu bar app for tracking time with http://tickspot.com.
- Presence – Desktop Menu Bar for Uberzeit, a self hosted time tracking platform.
- MemoryTamer – RubyMotion application for keeping memory usage in check. http://www.memorytamer.com/.
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
- Objc2rubymotion – convert objective-c code to rubymotion.
- MLogger – Simple, log server for development.
Editors & RM
- Vim tab completion for RubyMotion – a quick rundown on setting up tab completion in vim for RubyMotion.
- Atom-objc-2-rubymotion – Objective-C to RubyMotion converter for atom.
- Emacs motion-mode.el – a package to provide emacs’ major mode for RubyMotion enviroment.
- SublimeRubyMotionBuilder – Sublime Text 2 and 3 plugin to simplify RubyMotion developing.
- RubyMine & RubyMotion – RubyMine integrates with RubyMotion and helps create applications for iOS.
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
- Motion-distance – Easy distance tracking for RubyMotion projects.
- Motion-capture – AVFoundation wrapper to support custom camera controllers.
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
- Purplish-layout – RubyMotion wrapper for Auto Layout on iOS and macOS
- Motion-layout – Nice way to use Auto Layout in your RubyMotion app.
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
- Formotion – Painless, productive views on iOS.
- Motion-form – RubyMotion forms made easy.
Menu’s & Toolbars
- 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
- Ion_in_Motion – Ridiculously easy use of IonIcons in UILabels, UIButtons, UIImages and more. IonIcons: http://ionicons.com/.
- Moticons – The easiest way to add icons to your RubyMotion app.
Hybrid
- Motion Floating Action Button – Material design floating action button.
- Motion-awesome – DSL to easily create buttons and labels using the wonderful font-awesome library.
- Motion-hybrid – RubyMotion framework for easily making hybrid webview-centric iOS apps.
Element Wrappers
- Simple_si – RubyMotion wrapper for SIAlertView.
- Motion-blitz – RubyMotion wrapper for SVProgressHUD.
Graphic Libraries
- Motion-Plot – RubyMotion wrapper for CorePlot.
- Motion-ocr – RubyMotion wrapper for the OCR engine Tesseract.
Localization
- Motion-localization – Localization rake task for RubyMotion.
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
- Motionscan – RubyMotion wrapper around the image recognition SDK of Moodstocks.com.
- Motion-phrase – Connect your RubyMotion project with PhraseApp for easy app internationalization. Translatable strings are exported while browsing the app and then manageable through the PhraseApp translation editor.
- Purple-monkey – Barebones wrapper for working with MailChimp on iOS/macOS using RubyMotion.
- Motion-tickspot – RubyMotion wrapper for the http://tickspot.com API that works on iOS and macOS.
- Motion-aws – Provides iOS and macOS connectivity to AWS services.
- Motion-ocean – RubyMotion wrapper for the http://digitalocean.com API v2.0.
- Sox – RubyMotion wrapper for the Freshbooks API.
- Twittermotion – RubyMotion wrapper for the iOS Twitter API.
- Under-os-image – The new simplified images processing API for the http://under-os.com/ project.
- Motion-giphy – Nice wrapper around the http://giphy.com API.
- Motion-installr – Ad-hoc deployment using the amazing Installr service! https://www.installrapp.com/ .
- Under-os-image – The new simplified images processing API for the http://under-os.com/ project.
- MotionPanel – Native RubyMotion wrapper around the Mixpanel API.
- MotionPaddle – RubyMotion gem for the Paddle framework.
- Algolia Offline Search – Simple integration of Algolia Offline Search SDK (http://www.algolia.com/) in your RubyMotion application.
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
- Motion-screenshots – Automatic screenshots for your RubyMotion apps.
- Motion-launchimages – Automate taking your RubyMotion launch images.
Software Design Patterns
- Motion-pool – Pool for RubyMotion.
- Motion-state-machine – Grand Central-aware, simple syntax for state machines.
- Motion-objection – RubyMotion wrapper for Objection.
- Weak_attr_accessor – Adds weak_attr_accessor that wraps objects with WeakRef, for RubyMotion.
Templates
App project templates
- MotionTemplate – Clean RubyMotion project for quickly templating a styled application.
- Promotion-template – Utilize the bells and whistles of ProMotion to hit the ground running.
- Rubymotion_generators – Provides boilerplate code templates for RubyMotion.
- Motion-template-spritekit – SpriteKit project templates for RubyMotion (iOS/OSX/tvOS).
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
- RubyMotion, iOS Development with Ruby – Author: Clay Allsopp (free download).
- Building Mac macOS apps with RubyMotion – Author: Elliott Draper.
- Instant RubyMotion App Development – Author: Gant Laborde.
- RubyMotion iOS Development Essentials – Author: Abhishek Nalwaya, Akshat Paul.
Tutorials
- Concurrency patterns in RubyMotion – Article about working with Grand Central Dispatch in RubyMotion.
- IBeacons and Rubymotion – How to connect iBeacons and Rubymotion iBeacons with ProximityKit and Rubymotion
iOS Tutorials
- Rubymotion Tutorial – Make iOS Apps With Ruby.
- Fabric & RubyMotion Tutorial – Making Fabric Play Nice with RubyMotion.
- Facebook iOS SDK – How To Use the Facebook iOS SDK In Your RubyMotion project.
- RubyMotion Tutorial for Objective C Developers – Getting experienced Objective C developers on board.
macOS Tutorials
- Let’s Write a RubyMotion App: Part 1 – In this tutorial, you’ll build a painting application from scratch.
- Custom Table View Cell with IB and RM – Custom Table View Cell using Interface Builder with RubyMotion.
Chapters from the book Building Mac macOS apps with RubyMotion.
- Working with NSTableView – Working with NSTableView.
- Dragging and dropping – Dragging and dropping into your RubyMotion Mac macOS app.
- Capturing video and audio – Capturing video and audio on Mac macOS with RubyMotion.
- Previewing video and audio when capturing – Previewing video and audio when capturing on Mac macOS with RubyMotion.
- User specified custom key combination for a global hotkey – User specified custom key combination for a global hotkey.
Tutorial Screencasts
- Motion in Motion – Paid RubyMotion screencast with an occasional free episode for the masses to enjoy.
- Motion Casts – Learn to create native iOS applications using Ruby.
- IOS Development with RubyMotion – YouTube Channel from Kingsley Ijomah.
- RubyMotion Primer – Wishing you could create iOS apps using Ruby?
Presentations
- Converting Obj-C to RubyMotion – Keynote presentation about converting Objs to RubyMotion.
- Introduction to RubyMotion – Introduction to RubyMotion – The Cool Way to Build iOS Apps.
- Building iOS Apps With RubyMotion – Building iOS Apps With RubyMotion.
- Concurrency patterns in RubyMotion – Presentation about working with Grand Central Dispatch in RubyMotion.
- Talk about RubyMotion and Low Energy Bleutooth Sensors
Other Resources
Where to learn about RubyMotion and discover new RubyMotion libraries, projects and trends.
- RubyMotion Official Website – RubyMotion Official Website.
- Motion Toolbox – Collection of RubyMotion libraries and wrappers.
- App catalog – There are lots of RubyMotion apps in production.