• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
MacRuby for Fun and Profit
 

MacRuby for Fun and Profit

on

  • 2,237 views

This is a talk that I gave for the Boston Ruby Group on Dec. 13, 2011. The talk covers the use of MacRuby as a Cocoa REPL for learning and exploration, and integration between MacRuby and Xcode for ...

This is a talk that I gave for the Boston Ruby Group on Dec. 13, 2011. The talk covers the use of MacRuby as a Cocoa REPL for learning and exploration, and integration between MacRuby and Xcode for the development of OS X applications.

Statistics

Views

Total Views
2,237
Views on SlideShare
2,215
Embed Views
22

Actions

Likes
6
Downloads
20
Comments
0

4 Embeds 22

http://coderwall.com 15
http://www.techgig.com 5
http://a0.twimg.com 1
http://www.m.techgig.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

MacRuby for Fun and Profit MacRuby for Fun and Profit Presentation Transcript

  • MacRuby For fun... and profit!Presented by: Joshua Ballanco
  • A quick introduction...• Been using Ruby since 2004• MacRuby Core Team member• Worked for Apple 2006 to 2010• Currently at Patch (AOL)• https://github.com/jballanc• @manhattanmetric
  • Overview• Using MacRuby as a Cocoa REPL• Cocoa Development with MacRuby • Getting Started • Building and Running • Hooking Up a UI • Using Gems • Packaging and Shipping
  • What is MacRuby?• http://www.macruby.org• http://www.macruby.org/files/• http://www.macruby.org/files/nightlies/• Available from RVM (but not recommended)• Source at GitHub: https://github.com/MacRuby/MacRuby
  • What is MacRuby?• Compiling MacRuby: • Need LLVM *2.9* (see the README) • rake ; sudo rake install• Bugs – https://www.macruby.org/trac/report• MacRuby-devel mailing list• @macruby, #macruby
  • Ruby Syntax
  • Ruby Syntax Parser MRI’s parse.y Compiler RoxorCompiler <C++> VM (sans GVL) LLVM (with JIT)RoxorVM & RoxorCore <C++> Objective-C Runtime
  • MacRuby for Fun!• REPL – Read Eval Print Loop
  • MacRuby for Fun!• REPL – Read Eval Print Loop• Useful tool for learning, development, and debugging
  • MacRuby for Fun!• REPL – Read Eval Print Loop• Useful tool for learning, development, and debugging• LISP, Python, Ruby all benefit from a REPL• C, C++, Java do not
  • MacRuby for Fun!• REPL – Read Eval Print Loop• Useful tool for learning, development, and debugging• LISP, Python, Ruby all benefit from a REPL• C, C++, Java do not• Obj-C ...has MacRuby!
  • MacRuby for Fun!
  • MacRuby for Fun!• Let’s learn CoreData!
  • MacRuby for Fun!• Let’s learn CoreData!• There sure is a lot of documentation on http://developer.apple.com about CoreData
  • Core Data Utility TutorialData Management 2010-09-19
  • ContentsIntroduction Introduction to Core Data Utility Tutorial 7 Who Should Read This Document 7 Organization of This Document 7 See Also 8Chapter 1 Overview of the Tutorial 9 Task Goal 9Chapter 2 Creating the Project 11 Create a New Project 11 Create the project 11 Link the Core Data framework 11 Adopt Garbage Collection 12 What Happened? 12Chapter 3 Creating the Managed Object Model 13 Specifying the Entity 13 Create the Managed Object Model 13 Create the Model Instance 13 Create the Entity 14 Add the Attributes 14 Add a Localization Dictionary 15 Instantiate a Managed Object Model 16 Build and Test 16 Complete Listing 16Chapter 4 The Application Log Directory 19 The applicationLogDirectory Function 19 Update the main Function 20 Build and Test 20Chapter 5 Creating the Core Data Stack 21 Overview 21 The managedObjectContext Function 21 Create the Context Instance 21 Set up the Persistent Store Coordinator and Store 22 3 2010-09-19 | © 2005, 2010 Apple Inc. All Rights Reserved.
  • CHAPTER 8 Complete Source Listings if ([key isEqualToString:@"processID"]) { self.processID = 0; } else { [super setNilValueForKey:key]; } } @end38 The Run Class 2010-09-19 | © 2005, 2010 Apple Inc. All Rights Reserved.
  • MacRuby for Fun!• Let’s learn CoreData!• There sure is a lot of documentation on http://developer.apple.com about CoreData
  • MacRuby for Fun!• Let’s learn CoreData!• There sure is a lot of documentation on http://developer.apple.com about CoreData• Documentation is boring :-(
  • setup.rb
  • MacRuby for Fun!• Let’s learn CoreData!• There sure is a lot of documentation on http://developer.apple.com about CoreData• Documentation is boring... :-(
  • MacRuby for Fun!• Let’s learn CoreData!• There sure is a lot of documentation on http://developer.apple.com about CoreData• Documentation is boring... :-(• REPLs are fun! :-)
  • MacRuby for Profit!• Things you will need: • MacRuby nightly build (or 0.11 when it comes out) • Xcode 4.2 (v4.1 is definitely broken, v3- series may still work) • Gumption (and the mailing list address)
  • MacRuby for Profit!• Install Xcode FIRST! then MacRuby• Start Xcode, choose the MacRuby template• Build and go!
  • Building and Running• MacRuby template already contains targets needed to compile, build, and run• macruby_deploy does all the hard work...
  • Hooking Up a UI• MacRuby classes are Objective-C classes• Define outlets with attr_* methods• Any MacRuby method with a single argument named “sender” can be used as an action
  • Using Gems• Install with sudo macgem install <gemname>• Require Gems in rb• Use Gems for Development• Vendor Gems with macruby_deploy --gem for Distribution
  • Packaging and Shipping• App bundles generated by macruby_deploy are relocatable to machines without MacRuby (or even with incompatible versions of MacRuby)• Bundles can be signed for App store distribution with the codesign CLI tool• Excellent blog post at: http://astonj.com/ tech/how-to-submit-your-macruby-app-to- the-mac-app-store/
  • Bonus!
  • MacRuby......and you didn’t even know it!!!• CocoaPods!• https://github.com/CocoaPods/CocoaPods• Like Gems for iOS (and OS X... and MacRuby)• Uses MacRuby under the covers• Complemented by Laurent Sansonetti!
  • Thank you! *Flame transition quota fulfilled
  • Questions? *Flame transition quota fulfilled