Breaking Cyclical References in RubyMotion with Proc#weak

I recently wrote a blog post illustrating the memory management limitations in RubyMotion. More specifically, I illustrated how easy it was to introduce cyclical references by creating strongly referenced lambdas where the lambdas implicitly have a strong reference back to self. Unfortunately, at the time of the blog post, it was not possible to break […]

Working around RubyMotion’s Memory Management Limitations

During my time using RubyMotion and ReactiveCocoa, I ran into a couple of pitfalls related to memory management. It should noted that these are not bugs in RubyMotion or ReactiveCocoa but are instead just the reality of working in a runtime that is built on Automatic Reference Counting. Lambdas and Blocks in RubyMotion In RubyMotion, […]

Unit Testing with ReactiveCocoa and RubyMotion

Karlin Fox and I have been using RubyMotion and ReactiveCocoa to build an iPad application for our current project. We’ve enjoyed the different paradigm and the way we’re able to stream data through our application. Adapting TouchDB live queries to ReactiveCocoa signals has been particularly rewarding. But what about unit testing our iOS app? Unit […]

ReactiveCocoa & RubyMotion: The Setup

RubyMotion promises to bring the clarity and concise syntax of Ruby to iOS and OS X development. ReactiveCocoa’s aim is to help reduce complexity by deriving state instead of declaring it. Sounds like a great combination, right? There are some complications. First, the documentation and examples almost all use the RAC and RACAble macros provided […]

ReactiveCocoa: The Future of Cocoa Programming

Last year at around this time, Github announced ReactiveCocoa. I was excited to see a Functional Reactive Programming framework made for Objective-C and found an immediate use for it in an iOS project. Since its release, there’s been a tremendous amount of activity, documentation, and blog posts around it. The point being, there isn’t an […]

iOS Keychain Entitlements for Using RedLaser in RubyMotion

I was recently tasked with exploring the RedLaser SDK and getting it to function in a RubyMotion application. While using a newly-created RubyMotion project I found that the function call RL_CheckReadyStatus() (which does a number of hardware and license checks) was consistently failing with a -3 return value, which represents a bad license file. Because […]