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:
- Objective-C
- Understand classes, objects, and methods
- Write a first program in Objective-C
- Understand data types and expressions
- Use basic control constructs for looping, decision-making, etc.
- Define classes and write instance and class methods
- Be able to use inheritance
- Take advantage of polymorphism and dynamic typing
- Work with the preprocessor
- Utilize underlying C features
- Use the basic Foundation classes (numbers, arrays, dictionaries, sets, etc.)
- Retain and release objects correctly to prevent memory leaks
- Be fluent in Objective-C
- Cocoa
- Be able to write complex applications for Mac OS X
- Have mastery of Interface Builder and Xcode
- Be able to find and understand the online documentation
- Have experience with the most common classes in the frameworks
- Have a clear understanding of the design patterns used in Cocoa
- Be able to recognize several common idioms of the Cocoa community
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 |
What's Included
Price includes a seven-day class, student guides, lunch each day, and a stylish "Big Nerd Ranch" t-shirt.