The RubyMotion Community

In the early days of Rails, the community was small and anyone could join the conversation and be included. Over time, as the community scaled (see what I did there?), that conversation turned into broadcasting by the community leaders and the community became an audience. I’m not knocking the Rails community, this is natural when communities get large.

The RubyMotion community is still very small, and we’re all betting that RubyMotion will take off and be a big deal. Now is a great time to join the conversation.

Jack Watson-Hamblin has written a few posts about the community, and is organizing a BaseCamp group to build apps as a community.

Gant Laborde runs Motion Meetup, a monthly video chat about RubyMotion (I’ll be on in February btw).

If you tweet something with “RubyMotion” people will answer you (I look every once and in a while and answer questions). Feel free to send me an email or chat with me on Google Hangouts: Join Jack’s group. Ask or answer questions on Stackoverflow like Jamon Holmgren does. Keep on working on those gems. Lastly, be good to each other.

Happy coding, Todd Werth (@twerth)

Articles, News, and Blog Posts

1/6/2014 – “Episode 5 – CoreData with CDQ and ruby-xcdm” by MotionInMotion

1/6/2014 – “Pachelbel – Process and synthesize audio in RubyMotion” by Drew Carey Buglione

1/4/2014 – “motion-popup: a RubyMotion gem for popup panels in your status bar app” by Elliott Draper

1/3/2014 – “Introduction to RubyMotion” by Bjorn Maeland

1/3/2014 – “Building Apps as a Community” by Jack Watson-Hamblin

1/3/2014 – “motion-sqlite3 – A minimal wrapper over the SQLite 3 C API for RubyMotion” by Matt Green

1/2/2014 – “Community Members” by Jack Watson-Hamblin

1/1/2014 – “New Videos from BigBinary” by Neeraj Singh

1/1/2014 – “What programming languages have you used this year?

In case you missed it

11/3/2013 –  Baruco 2013: iOS Games with RubyMotion, by Brian Sam Bodden


Poll of the Week

RubyMotion News

RubyMotion 2.19 Released

  • [iOS] Fixed a regression related to the sim launcher changes for Xcode 5.1 that broke `rake simulator debug=1`.
  • [OSX] Fixed a regression where #eval support was not working anymore.
  • Improved Hash#{default, shift} when Hash#default_proc returns a block.  2 times faster.
  • Improved comparison iterator blocks that return Float objects.  (Ex. Array#sort{|a,b| return float_object }). 2 times faster.

sudo motion update

RubyMotion Tip

RubyMotion Views != Rails Views

I think this causes a lot of confusion. Some may disagree with me, but think of RubyMotion controllers as Rails’ controllers + Rails’ views, and think of RubyMotion’s views as Rails’ partials.

In some other development environments, a UIView would be called a control, and a UIViewController would be a screen.

This is overly simplified, but I think it gives you a better mental model of what they are actually are.


What is RubyMotionQuery (RMQ) you ask? Check out  this site


RMQ has tags, which allow you to assign 0 or more tags to a UIView or UIViews. You can use tags to later identify like items, select them, then perform actions on them. You can also use them for simple state management (such as marking which items are selected or not).

Add tags:
rmq(my_view).tag(:client, :selected)

Clear tags:

Select by tag:
rmq(:selected).style{|st| st.background_color =}.animations.throb

You can also assign values to a tag, which seems strange, but it’s actually handy in some circumstances:
rmq(my_view).tag(your_tag: 22, your_other_tag: ‘Hello world’)

Here is an example of how I used tags – with data – in a real project. I tagged views as :themed, which meant I could change the visual theme of a screen by selecting all :themed views, and then apply a set of styles to them. However, for each view, I needed to tag them with what theme “class” they were, like so:
rmq(my_view).tag(themed: :strong_text)
rmq(my_view).tag(themed: :header)

One more thing

Bitcoin is cool, it’s more than a currency, it’s an authentication system. What cool stuff could be built around the Bitcoin protocol in RubyMotion?