introduction to rubymotion - the cool way to build ios apps
Post on 15-May-2015
302 Views
Preview:
DESCRIPTION
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