introduction to rubymotion - the cool way to build ios apps

Post on 15-May-2015

297 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Introduction to RubyMotion by Gant Laborde - 2013 Live Presentation Link - http://gantman.github.io/RubyMotion-Intro/ Presentation Code - https://github.com/GantMan/RubyMotion-Intro

TRANSCRIPT

Introduction to RubyMotion

The Cool Way to Build iOS Apps

By Gant Laborde

@GantLabordeAvid Rubyist and generally immature guy

Co-Founder of IconoclastLabs.com

Author of Numerous RubyMotion projects and Pull Requests

Author of the book RubyMotion App Development by Packt Publishing.

Motion Meetup OrganizerRubyMotion's Monthly Meetup

meetup.RubyMotion.com

Matt Garrison

@mattsgarrison

RubyMotion

RubyMotion - Wat?

/ˈroo͞bē-mōSHən/

noun trademark 1. A proprietary toolchain, created by HipByte SPRL, for

developing native iOS and OS X applications on Apple devicesand computers by statically compiling the Ruby programming

language.OR

Apps the Ruby Way

Quick ExampleObjective-C button tap

[button addTarget:self action:@selector(buttonTapped:) forControlEvents: UIControlEventTouchUpInside];

// Elsewhere - (void)buttonTapped:(id)sender { self.view.backgroundColor = [UIColor redColor]; }

RubyMotion button tap

button.addTarget(self, action:'button_tapped', forControlEvents:UIControlEventTouchUpInside)

# Elsewhere def button_tapped self.view.backgroundColor = UIColor.redColor end

Better ExampleObjective-C button tap

[button addTarget:self action:@selector(buttonTapped:) forControlEvents: UIControlEventTouchUpInside];

// Elsewhere

- (void)buttonTapped:(id)sender { self.view.backgroundColor = [UIColor redColor]; }

RubyMotion button tap (with sugarcube gem)

button.on(:touch) do self.view.backgroundColor = :red.uicolor end

and more like_rubylessLike:objectiveC:

- Clay Allsopp

What's So Great About RubyMotion?In my opinion

Gems and CommunityEditor IndependenceTesting!ReadabilityNatively CompiledThe REPL

RubyMotion AnalogyRubyMotion is to Objective-C

As Coffeescript is to Javascript

... plus gems are kind of like jQuery plugins

... plus MacBacon has spec tests like Jasmine would

... plus the REPL lets you live-modify like developer tools

... plus it compiles and obfuscates your final codebase

... OK, this analogy got out of control

Let's Look At Code!Classic - Hello World

Full App - Ruby Trivia

Games!

Hello World

$ motion create test

Tests will fail

class AppDelegate def application(application, didFinishLaunchingWithOptions:launchOptions) @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds) @window.rootViewController = HelloWorldController.new @window.makeKeyAndVisible true end end

class HelloWorldController < UIViewController def viewDidLoad p "Hai" end end

Now tests pass!

Hello World - REPL

main_view = UIApplication.sharedApplication.windows[0].rootViewController.view

main_view.backgroundColor = UIColor.blueColor

OR, just command click the view!

# REPL input

self.backgroundColor = UIColor.whiteColor

@label = UILabel.new

@label.text = "Hello World"

@label.sizeToFit

self.addSubview(@label)

# get down from there!

@label.center = [100, 100]

OR, use sugarcube-repl's tree command.

Code Example #2Ruby TriviasugarcubeTeacupProMotionBubbleWrapformotionand more ...

iconoclastlabs.github.io/rubytrivia/

Available on itunes

Let's look at the code!

Code Example #3Joybox

Joyboxjoybox.io

Based on Cocos2DIncludes Box2D physicsWrapped in Ruby API

EASY

Joybox

Let's look at some Joybox code!

2:51

Totally Tacos!A game made in one day!

Thank you!Questions?

@GantLaborde

Feel free to contact me via Gant@IconoclastLabs.com

top related