• Stars
    star
    1,265
  • Rank 37,188 (Top 0.8 %)
  • Language
    Ruby
  • License
    MIT License
  • Created about 12 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ProMotion is a RubyMotion gem that makes iPhone development less like Objective-C and more like Ruby.

ProMotion

Gem Version Build Status

ProMotion was created by Infinite Red, a web and mobile development company based in Portland, OR and San Francisco, CA. While you're welcome to use ProMotion, please note that we rely on the community to maintain it. We are happy to merge pull requests and release new versions but are no longer driving primary development.

iPhone Apps, Ruby-style

ProMotion is a RubyMotion gem that makes iOS development more like Ruby and less like Objective-C. It introduces a clean, Ruby-style syntax for building screens that is easy to learn and remember and abstracts a ton of boilerplate UIViewController, UINavigationController, and other iOS code into a simple, Ruby-like DSL.

# app/app_delegate.rb
class AppDelegate < PM::Delegate
  status_bar true, animation: :fade

  def on_load(app, options)
    open RootScreen
  end
end

# app/screens/root_screen.rb
class RootScreen < PM::Screen
  title "Root Screen"
  nav_bar true

  def on_load
    set_nav_bar_button :right, title: "Help", action: :open_help_screen
  end

  def open_help_screen
    open HelpScreen
  end
end

# app/screens/help_screen.rb
class HelpScreen < PM::TableScreen
  title "Table Screen"

  def table_data
    [{
      title: "Help",
      cells: [
        { title: "About this app", action: :tapped_about },
        { title: "Log out", action: :log_out }
      ]
    }]
  end

  def tapped_about(args={})
    open AboutScreen
  end

  def log_out
    # Log out!
  end
end

Features

Screens Navigation Bars Tab Bars
ProMotion Screen ProMotion Nav Bar ProMotion Tabs
Table Screens Grouped Tables Searchable Refreshable
ProMotion TableScreen Grouped Table Screen Searchable Refreshable
SplitScreens Map Screens Web Screens
ProMotion SplitScreens MapScreen ProMotion WebScreen

...and much more.

Getting Started

  1. Check out the Getting Started Guide
  2. Watch the excellent MotionInMotion screencast about ProMotion (very reasonably priced subscription required)
  3. Follow a tutorial: Building an ESPN app using RubyMotion, ProMotion, and TDD
  4. Read the Documentation

Changelog

See Releases page

Apps built on ProMotion

Apps built on ProMotion

Your app

Open a pull request! We love adding new ProMotion-built apps.

API Reference

We have comprehensive documentation with code examples, usage examples, and API reference.

ProMotion Documentation

Screencasts

Help

ProMotion is not only an easy DSL to get started. The community is very helpful and welcoming to new RubyMotion developers. We don't mind newbie questions.

The quickest way to get help is to join the Motioneers Slack Group. If you still need help, feel free to open an issue on GitHub. If we don't respond within a day, tweet us a link to the issue -- sometimes we get busy.

Premium Support

ProMotion, as an open source project, is free to use and always will be. Infinite Red offers premium ProMotion support and general mobile app design/development services. Email us at [email protected] to get in touch with us for more details.

Contributing

See CONTRIBUTING.md.

Core Team

Other Contributors

More Repositories

1

flame

Flame AI: CLI for Interactive AI-Powered React Native Upgrades
TypeScript
294
star
2

react-native-colo-loco

Colocate your native modules and components with your JavaScript/JSX files.
JavaScript
292
star
3

qub

Qub is a CLI and QB64 web framework for building websites with QBasic. Star this repo!
Visual Basic 6.0
132
star
4

mst-async-storage

Brings AsyncStorage support to mobx-state-tree for React Native projects
TypeScript
31
star
5

bluebun

Bun-powered CLI library, inspired by Gluegun
TypeScript
29
star
6

rocket-elm

A small game where you pilot a rocket ship around. Written in Elm for learning.
HTML
28
star
7

path

Elm pathfinding demo by Jamon Holmgren and Chris Krycho
Elm
27
star
8

bacon-cheat-sheet

RubyMotion Bacon Specs Cheat Sheet
23
star
9

jamon.dev

Jamon Holmgren's personal website, built in QBasic (yes, really)
HTML
22
star
10

promotion-demo

Introducing ProMotion
Ruby
21
star
11

motion-table

MotionTable is a RubyMotion gem that makes it easy to handle UITableViews from a UITableViewController.
Ruby
20
star
12

textbox.page

Just a simple textbox for pasting text into
HTML
20
star
13

pave

Command line tools for Concrete5 websites. Star this repo if you're a Concrete5 developer who values automation!
Ruby
20
star
14

TrailBlazers

Live Coded React Native App -- from my talk at React Live Amsterdam 2019
TypeScript
17
star
15

motion-tab

MotionTab is a RubyMotion gem for making UITabBars easier to implement.
Ruby
16
star
16

active_tax

A Ruby gem for retrieving local sales tax rates from various government APIs.
Ruby
16
star
17

demo-sparrow

Attempt at implementing the Sparrow game engine in RubyMotion
Ruby
15
star
18

slackminder

Slack reminders desktop app
JavaScript
13
star
19

promotion-template

Simple template to start off right in ProMotion for RubyMotion
Ruby
11
star
20

PlayerPopularity

Rate NBA players
TypeScript
11
star
21

space-ball

An Electron-powered game. Manage a club in a fictional sport, Space Ball.
JavaScript
10
star
22

espn_app

Sample ProMotion / RubyMotion app using TDD
Ruby
9
star
23

mem-watcher

Helps you keep an eye on your RubyMotion iOS app's memory and CPU usage.
Ruby
9
star
24

dotfiles

My dotfiles
Shell
8
star
25

compressor

Concatenates your RubyMotion source files for faster compile times.
Ruby
7
star
26

acr-talk

Ancient City Ruby -- Talk Repo -- Jamon Holmgren / Morgan Laco
TypeScript
7
star
27

ArabCup

TypeScript
6
star
28

js

JS Playground, optimized for mobile
HTML
5
star
29

viper

Auto snake case for Objective-C methods in RubyMotion. It's called "Viper" because it's dangerous. ;-)
Ruby
5
star
30

dropship

[WIP] A CLI for setting up deployments to a DigitalOcean Droplet
Shell
4
star
31

phpGenesis

A lightweight php framework featuring layouts, automatic routing, pretty urls, phpActiveRecord integration and more.
PHP
4
star
32

echoes

TypeScript
4
star
33

promotion-motion-kit

MotionKit/ProMotion demo example
Ruby
4
star
34

motion-docs

(Deprecated) Access RubyMotion documentation from your REPL
Ruby
4
star
35

promotion-tutorial

A RubyMotion App Using ProMotion
Ruby
4
star
36

demo-blazers-highlights

Demonstration ProMotion/RubyMotion app showing NBA highlights from Youtube
Ruby
3
star
37

promotion-formotion

Example showing ProMotion 0.7 and Formotion working together.
Ruby
3
star
38

st

Space transport text-based game
TypeScript
3
star
39

promotion-styling

Styling guide for ProMotion, a RubyMotion framework
Ruby
3
star
40

RNL-ReactNativeStorybook

TypeScript
3
star
41

poikas

Suomi Poikas team website
TypeScript
3
star
42

mobx-state-tree-demo

JavaScript
3
star
43

jamon-electron-demo

TypeScript
2
star
44

OTAHack

TypeScript
2
star
45

motion-aws

Provides iOS and OSX connectivity to AWS services.
Ruby
2
star
46

NBAPlayers

TypeScript
2
star
47

rails_version

Rails gem for https://railsversion.herokuapp.com.
Ruby
2
star
48

WebViewPing

Java
2
star
49

OwlPlay

TypeScript
2
star
50

IgniteSnack

TypeScript
2
star
51

terve-sync

TypeScript
2
star
52

motion-motion

RubyMotion, now with more Motion!
Ruby
2
star
53

testdata

Repo for test data
1
star
54

toaster

RubyMotion-android "Toast" gem.
Ruby
1
star
55

TwitterApp

#TwitterCodeClass app https://twitter.com/jamonholmgren/status/1182354802233106432
JavaScript
1
star
56

terve-demo

TypeScript
1
star
57

CodeOptimization

Java
1
star
58

Diff

TypeScript
1
star
59

Zamboni

Swift
1
star
60

NativeIntegration

TypeScript
1
star
61

blazers-schedule

1
star
62

iced-tea

Objective-C
1
star
63

PizzaApp

Java
1
star
64

SecretSanta

Swift
1
star
65

codecounter

Twitter live demo of building a Gluegun app
TypeScript
1
star
66

timeline

Experimental Twitter replacement that nobody will read
1
star
67

TodoRealm

Java
1
star
68

FastingApp

TypeScript
1
star
69

blade

Fun little command-line adventure game
Ruby
1
star
70

SwipeApp

TypeScript
1
star
71

HexMap

GameMaker Studio 2 - Hex Map generator
Game Maker Language
1
star
72

BroRPG

JavaScript
1
star
73

clearsight_ruby_gem

Internal gem for ClearSight Studio common operations.
Ruby
1
star
74

jamon-cli

JavaScript
1
star
75

Attack5

Reprisal of an old game I made in my teens, using GameMaker Studio 2
Yacc
1
star