conference ribbon



Are you a Ruby developer interested in iOS development but needing a bit of help to get started? Look no more!

We offer a full 5-day class that will teach you everything you need to know about iOS and RubyMotion, from the very basic concepts to advanced topics. Experience with iOS is absolutely not required.

At the end of the training you should be able to start writing full-fledged apps for iPhone or iPad in Ruby.

This is a hands-on training. You will get to write a few iOS applications during the course. You will also be given printed material and access to a dedicated forum where you can discuss with the instructors and other students.

Requirements: Basic Ruby knowledge, a Mac computer, a provisioned iOS device and a valid RubyMotion license. That's all!

See pricing information

Course outline

Day 1

iOS platform overview

Operating system, window and event system, application life cycle

Your first RubyMotion app

Creating an app, project structure, defining views and methods, setting targets and actions, running the app, icons, images

RubyMotion and Objective-C

RubyMotion stack, object model, memory management, messages, initializers, accessors, properties, differences between Ruby and Objective-C and RubyMotion

RubyMotion and C

Using structures, calling functions, using pointers

Introduction to Cocoa

Model-View-Controller, frameworks, UIKit and controls, Foundation

Day 2

Delegation pattern

Delegation, using frameworks, CoreLocation, CLLocationManager, compiler errors

Introduction to views

UIView, subclassing UIView, the drawRect: method, drawing and resizing, UIScrollView, zooming, gestures, retain cycles


MapKit framework, MapView, MKAnnotation, tagging


Bacon, spec files, spec helpers, context, device events, finding views, UIAutomation

Designing UI

Manual vs Interface Builder, XIB files, libraries and DSLs, using Interface Builder

Day 3

View controllers

Using view controllers, responsabilities, life cycle, UITabVarViewController, tab bar items, assigning views

Table views

Data sources, reading Apple documentation, the UITableViewDataSource protocol, UITableView, UITableViewController, UITableViewCell, editing table views, deleting, moving and inserting rows

Advanced table views

Subclassing table views, layout, custom cells

Navigation controllers

UINavigationBar, file's owner, UINavigationController, appearing and disappearing views


Notification center, UIDevice notifications, autorotation

Day 4

Camera access

Displaying images and UIImageView, UIImagePickerController, UIPopoverController, caching images

Application sandbox and memory warnings

File system structure, reading and writing to disk, handling low-memory warnings, simulating memory warnings


Touch events, tracking touch events, the responder chain, instruments


CoreAnimation, CALayer and views, implicit animations

Advanced animations

CABasicAnimation, timing functions, CAKeyFrameAnimation, CATransaction

Day 5


Settings bundle, NSUserDefaults, reading and writing defaults

Accessing Web services

Fetching data, NSURLConnection, parsing XML and JSON, Rails integration, UIWebView

Data persistence

The model, archiving, SQLite, CoreData, model definition, NSManagedObject, NSManagedObjectContext

Using 3rd-party libraries

Vendoring projects, Bundler, BubbleWrap, CocoaPods, Cocos2d


GCD (libdispatch), queues, NSOperation, blocks


The training costs $2500 per student. Because we want to deliver high-quality training, our classes are small (25 students at most) and we always provide two instructors. We offer a discount for groups. The entire course is given in English.

Public training

You can find here public trainings that we have scheduled and purchase a seat. You can also fill out our form so that we can get back to you once we are new trainings available.

San Francisco Bay Area, 8-12 July

Public training form

Private training

Private training is offered for groups of 15 or more. We will travel to your location and deliver the training on-site. We can also customize the material according to your needs.

Contact us

What our allumni are saying

training cyrus

Cyrus Innovation sees lots of opportunities to develop iOS apps for our consulting clients. We were excited to take the training, since we have a strong corps of Ruby developers. Laurent and Norberto delivered a great, wide-ranging introduction to both RubyMotion and native iOS development. We came out of it with the knowledge and confidence to take on developing native iOS apps. In the weeks since, we've already taken on our first paid RubyMotion work and we're moving fast thanks to the great kick-start.

Paul Infield-Harm
Directory of Product Development, Cyrus Innovation

training mckinsey

Laurent and Norberto are amazing instructors. Their easy manner and depth of knowledge helped them adjust to the specific needs of the people in the room. The exercises were rich and enlightening, and the course was very interesting and informative. Overall, five days of training was definitely a worthwhile investment!

Abhishek Nalwaya
Technical Lead, McKinsey & Company IT



Laurent Sansonetti

Laurent is the founder of HipByte, the company behind RubyMotion. Laurent created RubyMotion and is also its current lead developer.

Laurent worked at Apple for 7 years as a senior software engineer, on both iLife applications and the core layer of OS X and iOS. A long time rubyist, he created and still maintains the MacRuby project. In a previous life, he worked on IDA Pro and was an active contributor to RubyCocoa and GNOME.

Laurent holds a B.S. in Computer Science from Liege's Engineering School of Belgium.


Norberto Ortigoza

Norberto is the founder of Raku and also an experienced programming instructor, having given more than 40 courses on iOS and Mac development. Norberto is also the co-founder of Mexico City's CocoaHeads group.

Norberto started programming 20 years ago and has been using NextStep and OpenStep since 1995. He discovered RubyMotion the day it was announced and has been using it in production since then.

Norberto holds a B.S in Computer Engineering and a M.S. in Computer Science from the National Autonomous University of Mexico. He also studied at the Software Engineering Institute at Carnegie Mellon.