Skip to content

Repository files navigation

ProMotion

Gem VersionBuild StatusCode Climate

ProMotion is maintained by Infinite Red, a web and mobile development company based in Portland, OR and San Francisco, CA.

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.rbclassAppDelegate < PM::Delegatestatus_bartrue,animation: :fadedefon_load(app,options)openRootScreenendend# app/screens/root_screen.rbclassRootScreen < PM::Screentitle"Root Screen"nav_bartruedefon_loadset_nav_bar_button:right,title: "Help",action: :open_help_screenenddefopen_help_screenopenHelpScreenendend# app/screens/help_screen.rbclassHelpScreen < PM::TableScreentitle"Table Screen"deftable_data[{title: "Help",cells: [{title: "About this app",action: :tapped_about},{title: "Log out",action: :log_out}]}]enddeftapped_about(args={})openAboutScreenenddeflog_out# Log out!endend

Features

ScreensNavigation BarsTab Bars
ProMotion ScreenProMotion Nav BarProMotion Tabs
Table ScreensGrouped TablesSearchableRefreshable
ProMotion TableScreenGrouped Table ScreenSearchableRefreshable
SplitScreensMap ScreensWeb Screens
ProMotion SplitScreensMapScreenProMotion WebScreen

NEW [Live reloading!](http://promotion.readthedocs.org/en/master/Guides/Live Screen Reloading/) Use pm_live to enable it, and on_live_reload in your screen to refresh things.

...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

Version 2.5.0

This release includes some new features and bugfixes and is backwards compatible with all 2.x releases.

  • PR #763 Adds footer_view to TableScreens
  • PR #705 Adds split-screen support for large iPhones
  • PR #736 Adds the index path when deleting a cell
  • Several other bugfix PRs

Version 2.4.0

This release includes several new features and is backwards compatible with all 2.x releases.

  • PR #686 Adds :searchable to the whitelisted properties a cell can have so that a warning is not generated.
  • PR #688 Adds support for SDWebImage and takes preference over JMImageCache. JMImageCache will still be supported till ProMotion 3.0 but we highly recommend you switch to SDWebImage.
  • PR #679 Extract methods from tablescreen for reuse in modules for redpotion.
  • PR #677 Added add_child_screen and remove_child_screen methods to PM::Screen.
  • PR #687 Adds persisting tab order when changed by the user for tab bars over 5 screens.

Apps built on ProMotion

Apps built on ProMotion

Your app

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

API Reference

We've created a comprehensive and always updated wiki with code examples, usage examples, and API reference.

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.

Contributing

See CONTRIBUTING.md.

Core Team

Other Contributors

About

ProMotion is a RubyMotion gem that makes iPhone development less like Objective-C and more like Ruby. Star this repo to keep tabs on our progress!

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages