about this book

MacRuby in Action was written to give Rubyists the ability to create rich Cocoa applications for the Mac OS X platform without having to learn Objective-C. Our goal is to have you, the reader, creating amazing Cocoa applications using MacRuby by the end of the book. Throughout the book, you’ll learn in the ins and outs of MacRuby while exploring the Cocoa framework, design patterns, system scripting, testing, and getting your application into the Mac App Store. We know that sometimes the best way to learn is to get your feet wet. That’s why you’ll be creating useful Mac applications along the way so you can apply the key topics as you learn them.

Who should read this book

This book is aimed at developers interested in writing software for the Mac platform. It doesn’t matter if you’re new to both the Mac and the Ruby language or you’re an experienced Ruby developer looking to learn how to write Mac apps. If you have the desire to create beautiful Cocoa applications for the Mac platform and want to do so using the elegant and highly productive Ruby language, then this book is for you. If you’re new to Ruby, we give you a brief overview of the language so you’ll feel comfortable enough to take on the rest of the book.

MacRuby in Action is also a more approachable introduction to Cocoa development than traditional Objective-C books. Throughout the book, we explore practical code examples that you’ll face when creating your own applications. MacRuby in Action can act as a guide for using MacRuby and Cocoa from the ground up, or you can use it as a reference if you’re looking to dive deeper into MacRuby.


The book has 11 chapters divided into three parts as follows:

Chapter 1 explores the inner workings of MacRuby and how to set up your development environment. There’s also an introduction to Ruby and an overview of Objective-C syntax. We then go into the MacRuby syntax, give a few examples, and end with two “Hello World” examples.

Chapter 2 takes a deeper dive into MacRuby with more in-depth examples. We look into using external frameworks, Ruby gems, and the MacRuby console. At the end of the chapter, you build a MacRuby Pomodoro application.

Chapter 3 talks about Apple’s development environment tools. You spend more time using Xcode’s Interface Builder to create rich Cocoa user interfaces. You then use your Interface Builder knowledge to create an application to manage to-do lists.

Chapter 4 introduces and explains a code design technique known as delegation. This design pattern is used often in the Cocoa framework and is important to know because it’s a core concept. You explore delegation by creating a web browser with MacRuby.

Chapter 5 covers Cocoa’s notification system, which lets you set observers throughout an application to listen for and react to changes. This is another pattern that is used frequently in Cocoa. At the end of the chapter, you build an iTunes notification observer.

Chapter 6 explores key value coding (KVC) and observing. KVC is a mechanism in Objective-C that’s used throughout Cocoa. You learn about KVC, bindings, and key-value observing.

Chapter 7 introduces the Core Data framework. Core Data is Apple’s answer to object-relational mapping. We compare Core Data with other persistence solutions that you may be familiar with. At the end of the chapter, you use Core Data to add persistence to the Todo List application you built in chapter 3.

Chapter 8 discusses image manipulation, animation, and much more with Core Animation. Throughout the chapter, we go through examples to showcase what you can do with Core Animation once you scratch the surface.

Chapter 9 dives into the MacRuby-oriented mapping library HotCocoa. HotCocoa gives developers an alternative to Interface Builder by making it easy to create interfaces in code. You end up building a small application of your own.

Chapter 10 discusses testing with MacRuby. Testing is an essential part of software development, and it has gained a strong focus within the Ruby community. We look at different ways to test with MacRuby.

Chapter 11 explains how to release a MacRuby application to the world with the Mac App Store. We go into detail about the different review guidelines, how to provision your application for submission, and finally how to submit it for review.

Appendix A talks about scripting with MacRuby. We first provide a little history and an introduction to AppleScript. We then look at how you can use MacRuby to create scripts to automate functionality.

Code conventions

There are many code examples throughout this book. These examples always appear in a fixed-width code font. If we want you to pay special attention to a part of an example, it appears in a bolded code font. Any class name or method within the normal text of the book appears in code font as well.

Many of Cocoa’s methods have exceptionally long and verbose names. Because of this, line-continuation markers () may be included in code listings when necessary.

Not all code examples in this book are complete. Often we show only a method or two from a class to focus on a particular topic. Complete source code for the applications found throughout the book can be downloaded from the publisher's website at www.manning.com/MacRubyinAction.

Software requirements

An Intel-based Macintosh running OS X 10.6 or higher is required to develop MacRuby applications. You also need to download MacRuby, but it’s freely available at http://macruby.org.

The book offers full coverage of MacRuby and Xcode 4.

Author Online

Purchase of MacRuby in Action includes free access to a private web forum run by Manning Publications where you can make comments about the book, ask technical questions, and receive help from the authors and from other users. To access the forum and subscribe to it, point your web browser to www.manning.com/MacRubyinAction. This page provides information on how to get on the forum once you’re registered, what kind of help is available, and the rules of conduct on the forum.

Manning’s commitment to our readers is to provide a venue where a meaningful dialog between individual readers and between readers and the authors can take place. It’s not a commitment to any specific amount of participation on the part of the authors, whose contribution to the AO remains voluntary (and unpaid). We suggest you try asking the authors some challenging questions lest their interest stray!

The Author Online forum and the archives of previous discussions will be accessible from the publisher’s website as long as the book is in print.