RubyMotion Dispatch Has a Website

I’ve finally created a site for the Dispatch. It’s basic right now, it only has each issue. Later I will collect all the tips, apps of the week, etc, and make nice categories.

If you missed the last issue, you can find it here: issue #16

Happy coding, Todd Werth (@twerth)

Articles, News, New Gems, and Blog Posts

Mar 4th, 2014 – “Dallas.rb – 12,000 lines of RubyMotion” by Amir Rajan

Mar 3rd, 2014 – “Real-time web rubymotion built with Ruby on Rails and RubyMotion” by moriyaman

Mar 3rd, 2014 – “screencast – Episode 13 – Dynamic Type” by Jack Watson-Hamblin

Mar 1st, 2014 – “gem – jenkins-rubymotion-plugin – Jenkins RubyMotion Plugin” by Shizuo Fujita (Watson)

Feb 28th, 2014 – “The great RubyMotion debate – snake_case vs cameCase” by Jack Watson-Hamblin

Feb 28th, 2014 – “Core Data in Motion – Chapter 2” by Lori Olson

Feb 28th, 2014 – “book – Beginning Core Data with RubyMotion” by Stefan Haflidason

Feb 27th, 2014 – “gem – motion-wiretap – A wrapper for KVO, gestures, UIControl events, and procs. Okay okay it’s pretty much ReactiveCocoa in RubyMotion” by Colin T.A. Gray

Feb 27th, 2014 – “gem – Horizontal scroll for items in iOS (RubyMotion) to mimic Pulse-like UI” by Multunus Software

Feb 27th, 2014 – “Reflecting on RubyMotion Experiences – Part 1” by Jordan Maguire

Feb 27th, 2014 – “gem – motion-dynamic-type – Simplifying even further iOS 7’s Dynamic Type” by Jack Watson-Hamblin

Feb 25th, 2014 – “Learn RubyMotion Episode 19 – Using lock code functionality when user leaves the app idle in the foreground” by Neeraj Singh

iOS Marketing Tip of the Week by Mark Rickert

How did you decide on the price of your paid app? A good way to figure out a general price range is to show someone (not friends or family) your app and ask “how much would you pay for this?” Once you get a general pricepoint start playing with the price in iTunes Connect to find the “sweet spot”.

The demand curve for your app changes as the price changes in an effect called price elasticity of demand. Demand will go down as your price goes up. How much demand changes depends on a number of factors including similar app availability (and price) and how necessary the app is to a user. Since the supply of digital goods is technically unlimited, the only thing we can do to measure change in demand is simply change the price.

Once you’ve played with the price of your app a bit, you’ll be able to find that sweet spot of income per download vs. demand of the app to reach the maximum downloads at the highest price. This is where you should keep the price of your app. Remember: not all apps need to be or should be $0.99.

App Development Tip by Gant Laborde

###App Icons
Many of us don’t have a designer on hand, so we end up doing a “good enough” hodgepodge of graphics, or we find a template that we feel we can work with and spend a good bit of time modifying it to our needs. After dealing with as much stock photography, and photoshop as I could handle, I took a risk on Fiverr.

If you’re unfamiliar with Fiverr, it’s services rendered for $5, and the majority of it is absolutely horrible. Odds are you are going to get worse than what you pay for. But every so often you find a gem, and it almost makes up for all those other wasted Fiverr purchases.

Fortunately, I think I found a nice one, and I’m sharing it here with you. My app is called 10-20-30 Running and simply by sending them what I came up with, they got back with me with this:

(left: mine, right: theirs)

I purchase the $5 version, to see if they had any talent, and then later spent the $10 to get the actual .PSD file from them. Total investment $15 for a classy app icon, that fits the iOS7 theme.

The Fiverr Gig

CDQ News and Tips by Ken Miller

Using CDQ with Restkit

One of the advantages of using CoreData with RubyMotion is that you can hook
into the large library of Objective-C tools that are designed to complement it.
One very popular one is RestKit, which you can use to bind your objects to REST
APIs. Whenver you access the network and perform sync-type operations, which
might involve a lot of IO activity, it’s best to perform all of that in a background
thread, and that’s just what RestKit does for you. However, using it with CDQ
involves setting things up a bit differently than the simple case, because
RestKit really wants to manage your NSManagedObjectContexts for you, and so
you have to tell CDQ where to look.

Fortunately, we can still use CDQ to manage the model and the persistent store,
but we will skip the context setup with CDQ, and let RestKit do that. So first of
all do NOT call cdq.setup as usual. Instead, just create your RKManagedObjectStore
and pass it the store from CDQ, which will get set up implicitly:

@store = RKManagedObjectStore.alloc.initWithPersistentStoreCoordinator(cdq.stores.current)

Now that you’ve told RestKit to create the contexts, you need to tell CDQ about them:


RestKit uses the private queue peristence model to good effect, so you’ll want both of these.

One last, very important note: when you sync using RestKit, you do not need to
call, and in fact, doing so may cause hard-to-debug race conditions. Only if
you mean to save locally only and don’t intend to sync right away should you call

Help support the Dispatch and signup over at MotionInMotion

MotionInMotion releases a new
RubyMotion screencast each week. Here are some examples:

  • Episode 12 – Application URLs
  • Episode 11 – RMQ
  • Episode 10 – Teacup
  • Episode 9 – ProMotion + Formotion
  • Episode 7 – Working with the Camera

Sign up, it’s only $9AUD/month!

One more thing


If you have any tips, blog posts, or want to sponsor this newsletter, please send emails to