Big Nerd Ranch front page

Objective-C & Cocoa for Commuters

Objective-C & Cocoa for Commuters is a convenient way to learn how to develop applications for the Mac. It is our intensive seven-day bootcamp, but you get to sleep in your own bed. The course assumes no prerequisites, only that you are smart and motivated. This is also a great way to get started on iPhone development.

Students taking the commuter class will be in class each day from 9 AM to 6:30 PM (9 AM to Noon on the final day) and will be required to provide their own computers running Mac OS X 10.5. Lunch will be provided each day of class, and if students wish to obtain lodging onsite, they can do so directly with the conference facility at a discounted rate (mention "Big Nerd Ranch").

The first two days of the course are devoted to learning Objective-C with Mark Fenoglio, followed by our five-day Cocoa class with Aaron Hillegass. In 7 challenging days, these courses will take you from complete novice to being a Cocoa developer.

This developer training offers a condensed and information-rich, hands-on introduction into Objective-C programming. This is the perfect class for programmers interested in learning Cocoa who may lack a background programming in C or OOP.

We are using Mac OS X 10.5, Xcode 3, and Objective-C 2.

Upon completion of Objective-C & Cocoa for Commuters, the student will:

Upcoming Classes

Date Instructor Price Status Venue
Sep 27 - Oct 3 Mark Fenoglio
Aaron Hillegass
$3300 Register Now!
1 Space Left!
Santa Clara, California

Prerequisites

Prior experience in C and Object-Oriented Programming is not necessary. Some experience in programming helpful but not required.

Syllabus

Section Contents
Objective-C
Why am I here? An introduction to the instructor, Objective-C, and the course contents.
Classes, Objects, and Methods A brief introduction to the concepts of OOP programming.
Get started Write a first program in Objective-C. Define a simple class.
Data types and expressions Understand the basic data types and how to write expressions.
Loops How to use basic language statements for program looping.
Decisions Understand the basic decision-making constructs in the language.
More on Classes Using separate interface and implementation files. Multiple arguments to methods. Local variables.
Inheritance The root. Extension through inheritance. Overriding methods.
Polymorphism, Dynamic Typing, and Dynamic Binding The id type. Static vs. dynamic typing. Ask questions about classes.
More on Variables and Data Types Initializing classes. Variable scope. Storage class specifiers. Enumerated data types. Data type conversion.
Categories and Protocols Add a category to a class. Formal vs. informal protocols. Posing.
The preprocessor Define macros. Conditional compilation.
Underlying C Features Learn about arrays, structures, functions, and pointers.
Foundation Classes How to use basic foundation classes, including numbers, arrays, dictionaries, and sets.
Introduction to Memory Management Understand the autorelease pool. Write leak-free programs.
Cocoa
Why am I here? An introduction to Cocoa, the instructor, and the course.
Get started Build a simple app. Discuss tools, frameworks, and workflow.
Controls Use the target/action design pattern.
Helper Objects Use the delegation design pattern.
Controllers and Bindings In 10.3, Apple introduced a new technique that eliminates a lot of glue code.
Toward a Deeper Understanding of Bindings A series of experiments that explain what bindings are and how they work.
Undo Add an undo menu item to your application.
CoreData Use CoreData with bindings to create full-featured applications easily.
Archiving Serialize and deserialize object graphs. (Using keyed archiving.)
Nib Files and NSWindowController Discover what "Files Owner" really means.
User defaults Save and use preferences.
Using Notifications Register for notifications. Post notifications. Handle notifications.
Alerts Make the user confirm their choices with an alert panel.
Localization and Internationalization Prepare your application for the global marketplace.
Custom views Do custom drawing.
Images and Mouse events Make your custom view deal with mouse events, images, and the open panel.
Responders and Keyboard events Make your custom view deal with keyboard events.
Fonts and Attributed strings Draw character strings in your custom view.
Pasteboards and nil-targeted Actions Implement copy, cut, and paste.
Categories Add a method to an existing class.
Drag and Drop Add drag and drop to your custom views.
NSTimer Create and use timers.
Sheets Attach sheets to your window.
Formatters Format a character string and convert it to another type with a custom formatter subclass.
OpenGL and Cocoa Create and manipulate 3-D views in your Cocoa app.
Processes Create Unix processes and communicate with them from a Cocoa application.
Printing How to add printing to your application
Core Animation Use CALayer to add animation to your app
Garbage Collection A deeper look at how the garbage collector does its job
Core Data Relationships A more advanced look at Core Data

Price

A seven-day class, student guides, lunch each day, and a stylish "Big Nerd Ranch" t-shirt for $3300.