Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Motion in the MiddleRubyMotion as a Gateway toiOS Development
ME
MECYRUS INNOVATIONFLATIRON SCHOOLRUBYBLINDNYC RUBYMOTION@seldomatt / blog.seldomatt.com / github/seldomatt
RUBYMOTIONBuild iOS and OSX Apps with Ruby
“You have to learnthe Cocoa APIsanyway, so I don’tsee the advantagein addinganother layerof abstraction…”
RUBY COCOA
ARC
ARCBSTRACTION IN THE RIGHT PLACESEADING/TRANSLATINGOMMUNITY
ABSTRACTION IN THE RIGHT PLACES
OBJECTIVE C RUNTIMERUBY IMPLEMENTATION
“STRING”
[NSMutableString stringWithString:@”string”];
@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *...
class AppDelegatedef application(application, didFinishLaunchingWithOptions:launchOptions)@window = UIWindow.alloc.initWit...
“…by design, we expose the entire sameAPI as the one you would get in Obj-C.The iOS SDK is mature andwell documented…It wo...
COCOA FUNCTIONALITY+IDIOMATIC RUBY
Reading /Translating
ACCESS TO ALL OBJ-CLIBRARIES
PointersStatic TypingGarbage CollectionMemory Management
So far…SOLID UNDERSTANDING OF THE COCOAAPIsQUICKLY IMPLEMENT IDEAS USING RUBYACCESS TO ALL LIBRARIESTROUBLESHOOTING UNDER ...
“I decided not to ship RubyMotion with awrapper/DSL mainly for tworeasons…first, it is a very hard task,designing a good A...
GEMSBUBBLEWRAP – HTTP requests, alerts, notifications, etc.TEACUP – CSS-like stylesheets for laying out UISUGARCUBE/SWEET ...
rubymotion-wrappers.com
TESTINGMacBacon – rspec port / ships with RMMotion-Frank – cucumber integration testingMotion-Facon – mocking/stubbing
GET STARTED
Motion in the MiddlebyMatthew Salerno@seldomattgithub/seldomattblog.seldomatt.commeetup.com/rubyblind
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Motion in the Middle: RubyMotion as a Gateway to Mobile Development
Upcoming SlideShare
Loading in …5
×

Motion in the Middle: RubyMotion as a Gateway to Mobile Development

1,073 views

Published on

In the past year or so, RubyMotion (RM) has gained its share of both adherents and skeptics. Some criticize RM for being too far removed from the underlying Cocoa frameworks, while others claim the toolchain isn’t "Ruby" enough. While there is certainly merit to these conflicting objections, it is because of these supposed flaws, and not in spite of them, that RubyMotion is an excellent tool for producing iOS apps. By leveraging both the power of the Objective-C frameworks and the speed and expressiveness of Ruby (not to mention opening up the iOS ecosystem to the historically prolific open source Ruby community), RM has the potential to greatly expand the iOS developer base and change the mobile landscape for the better. In his talk, "Motion in the Middle," Matthew discusses the ways in which RubyMotion enables elegant, Ruby-esque design while exposing enough of the iOS/Cocoa frameworks to allow for wide-ranging and highly extendable applications.

Published in: Technology
  • Be the first to comment

Motion in the Middle: RubyMotion as a Gateway to Mobile Development

  1. 1. Motion in the MiddleRubyMotion as a Gateway toiOS Development
  2. 2. ME
  3. 3. MECYRUS INNOVATIONFLATIRON SCHOOLRUBYBLINDNYC RUBYMOTION@seldomatt / blog.seldomatt.com / github/seldomatt
  4. 4. RUBYMOTIONBuild iOS and OSX Apps with Ruby
  5. 5. “You have to learnthe Cocoa APIsanyway, so I don’tsee the advantagein addinganother layerof abstraction…”
  6. 6. RUBY COCOA
  7. 7. ARC
  8. 8. ARCBSTRACTION IN THE RIGHT PLACESEADING/TRANSLATINGOMMUNITY
  9. 9. ABSTRACTION IN THE RIGHT PLACES
  10. 10. OBJECTIVE C RUNTIMERUBY IMPLEMENTATION
  11. 11. “STRING”
  12. 12. [NSMutableString stringWithString:@”string”];
  13. 13. @implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions{self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen] bounds]];UIViewController *rootController = [[UIViewController alloc] initWithNibName:@”RootController” bundle:nil];self.window.rootViewController = rootController;[self.window makeKeyAndVisible];return YES;}
  14. 14. class AppDelegatedef application(application, didFinishLaunchingWithOptions:launchOptions)@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)rootController = UIViewController.alloc.initWithNibName(“RootController”, bundle:nil)@window.rootViewController = rootController@window.makeKeyAndVisibletrueendend
  15. 15. “…by design, we expose the entire sameAPI as the one you would get in Obj-C.The iOS SDK is mature andwell documented…It would have beena bad idea to restrict what you could dowith RubyMotion.”- Laurent Sansonetti, creator of RubyMotion
  16. 16. COCOA FUNCTIONALITY+IDIOMATIC RUBY
  17. 17. Reading /Translating
  18. 18. ACCESS TO ALL OBJ-CLIBRARIES
  19. 19. PointersStatic TypingGarbage CollectionMemory Management
  20. 20. So far…SOLID UNDERSTANDING OF THE COCOAAPIsQUICKLY IMPLEMENT IDEAS USING RUBYACCESS TO ALL LIBRARIESTROUBLESHOOTING UNDER THE HOOD
  21. 21. “I decided not to ship RubyMotion with awrapper/DSL mainly for tworeasons…first, it is a very hard task,designing a good API takes time andenergy and there is a lot tocover…second, rubyists love to writeDSLs (since Ruby is good at it), and Ididn’t want to steal the happiness.”- Laurent Sansonetti, creator of RubyMotion
  22. 22. GEMSBUBBLEWRAP – HTTP requests, alerts, notifications, etc.TEACUP – CSS-like stylesheets for laying out UISUGARCUBE/SWEET TEA – syntactic sugarMOTION-MODEL - =~ ActiveRecordPROMOTION – RM application framework
  23. 23. rubymotion-wrappers.com
  24. 24. TESTINGMacBacon – rspec port / ships with RMMotion-Frank – cucumber integration testingMotion-Facon – mocking/stubbing
  25. 25. GET STARTED
  26. 26. Motion in the MiddlebyMatthew Salerno@seldomattgithub/seldomattblog.seldomatt.commeetup.com/rubyblind

×