Building Your First Native iOS Salesforce App with Rubymotion

Preview:

DESCRIPTION

Rubymotion is a revolutionary new toolchain that enables developers to rapidly create native iOS applications using Ruby. Rubymotion is a statically compiled, extensive subset of Ruby 1.9 designed to run seamlessly, at full speed, on top of the Objective-C runtime. Thus, Rubymotion apps are distributable via the iTunes App Store, and are interoperable with all of the hardware and software features of iOS. Additionally, and perhaps most importantly, Rubymotion has a "toll-free" bridge to existing Objective-C libraries and frameworks allowing, for instance, Rubymotion apps to utilize the Salesforce Mobile SDK. Join us to learn, through a mix of live coding and presentation, how to build iOS apps using Rubymotion.

Citation preview

Building your first native iOS Salesforce App in Ruby

Kevin Poorman Technical Architect at Madrona Solutions group & Force.com MVP@CodeFriar

Kevin PoormanTechnical Architect at Madrona Solutions Group & Force.com MVPTwitter: @CodeFriar

Agenda• What is RubyMotion?

• Why use RubyMotion?• Considerations

• Getting started• Commas Save Lives

• Project Management• The Rakefile

• Objective-c to Ruby• Demo App walkthrough• Code walkthrough• Q/A

What is RubyMotion?• Toolchain• Ruby!• Static Ruby• Command Line based• Http://rubymotion.com

Why RubyMotion?Feature Objective-C RubyMotion

Memory Mgmt. Manual or ARC Automatically Managed

Editor Generally XCode Any editor you’d like

Build system XCode Command Line (Rake)

Language Objective-C Ruby ;)

Product Native iOS App Native iOS App

Lib Systems Cocoa Pods, TestFlight Cocoa Pods, TestFlight, MotionGems

Code example [[UIAlertView alloc] init] UIAlertView.alloc.init

Considerations• Commercial, $199.99• Require• *Eval

Getting Started.1. Motion create <app name>2. Edit3. Simulate

The Rakefile Explained• Build System.• Project Management

• 3rd Party Libraries, e.g. Salesforce Mobile iOS SDK• System frameworks and libraries• Distribution details• Name etc.

Obj-c to Ruby• “THIS”.to_lower()• application(application, didFinishLaunchingWithOptions:launchOptions)

• Translation• Obj-c: [[Obj StaticMethod] Param1:value1 Param2:Value2];• RubyMotion: Obj.StaticMethod.Param1(value1, Param2:Value2)

Demo App and Code Walkthrough

Kevin Poorman

Technical Architect & Force.com MVP,

@CodeFriar

https://github.com/noeticpenguin/DfD

emoApp