Course Summary
Learn Cocoa development from the ground up in this intensive, 5-day training course led by an experienced Cocoa developer and trainer.
Cocoa Programming
Code like the wind.
Get off to a quick start with your Cocoa programming project. This course will take you through all the basics of Cocoa development—from Objective-C through the AppKit framework. Learn time-saving tips and techniques for working with Xcode and Interface Builder. And discover best practices for designing and coding Cocoa applications.
Create great Mac OS X desktop apps.
Learn all the essentials of Cocoa programming: the tools, the frameworks, the concepts, and the best ways to get things done—with plenty of hands-on exercises to reinforce it all. Here's just a portion of what you'll learn:
Duration
5 days.
Objectives
Our approach to teaching Cocoa programming is a little different. First, we spend considerably more time on Objective-C 2.0 and the Foundation framework. We think that's essential to becoming a competent iPhone developer.
Second, we don't jump right into Interface Builder when we start getting into the Cocoa APIs. Instead, we initially do everything programatically. That way, once we do get into Interface Builder, it will be a lot clearer what's going on. (Interface Builder is unusual in that it's not a code generator—instead, it works with serialized objects, so it can seem awfully magical at first.)
This is in keeping our overall training philosophy, which favors a bottom-up approach that allows you to learn step-by-step. Not only does this make learning easier, but it tends to give you a more solid foundation for later on.
We combine this approach with a smaller class size that ensures plenty of individualized attention from the instructor. That way, we can be sure you'll have a chance to get all your questions answered, and get all your lab exercises completed successfully.
- Gain hands-on proficiency with Objective-C 2.0 and the Foundation framework
- Get up to speed fast on Xcode and Interface Builder
- Learn to write custom drawing and animation code
- Write code to respond to events such as user input from the mouse and keyboard
- Set up and manage controls such as text fields, buttons, and sliders.
- Work with table views and other UI components
- Persist application state and user data
- Connect user interface objects programatically and in Interface Builder
Additional Notes
Learn from a seasoned developer and teacher.
Jonathan Lehr is the founder and President of About Objects. In over two decades of experience as a software developer and trainer, he has written several books and more than a dozen courses on Objective-C, Cocoa, Java, and other programming topics.
Jonathan first learned Object-Oriented programming on a NeXT workstation he bought in 1991, and he has been sharing his enthusiasm for Objective-C and Cocoa ever since.
Need a machine? Reserve a 20" iMac Today!
Bring your own MacBook or MacBook Pro. Or—if you're attending classes at our headquarters facility in Reston—reserve one of our 20" iMacs with Core Duo processor and 2GB of RAM.
There are also MacBook Pros available at our other locations, but quantities are limited. Please contact our registrar (571-346-7544) to reserve a machine for an upcoming class.
Links
For additional information on Objective-C please visit:
ADC Reference Library: http://developer.apple.com/documentation/Cocoa
Stepwise: http://www.stepwise.com/
Cocoa Dev Central: http://www.cocoadevcentral.com/
Vermont Recipes: http://www.stepwise.com/Articles/VermontRecipes/index.html
Outline
- Object-Oriented Design: General principles; concepts and approaches used in Cocoa.
- Xcode: Creating and building a project; running and debugging apps; using the class and documentation browsers.
- Objective-C: Overview of language features; dynamic typing, dynamic binding, and dynamic loading.
- The Runtime System: How methods are looked up dynamically; resolving unmatched selectors and forwarding messages.
- Dynamic Properties: Declaring and synthesizing accessor methods with @property and @synthesize.
- Categories and Protocols: Adding methods to existing classes; optional methods and informal protocols.
- Foundation Framework: Key classes and paradigms (such as delegation, key-value coding, and mutable subclasses).
- Files and URLs; Storing and retrieving data in the filesystem and on the web.
- Property Lists and Key-Value Coding Cheap persistence, and other tricks.
- Memory Management: Choosing between reference counting and garbage collection; reference counting techniques; autorelease pools explained.
- The Application Class and the App Delegate: The window server and the main event loop; managing main window and key window status; methods implemented by the delegate; application configuration.
- Windows and Panels: Creating and managing windows programatically; implementing window delegate methods.
- Menus: Creating menus and submenus; modifying, adding, and removing items dynamically.
- Views and Responders: Drawing to the screen and interacting with mouse and keyboard events; understanding the view hierarchy; implementing custom drawing behavior.
- Core Animation Layers: Working with layer-backed views and creating custom animations.
- Controls and Cells: Action methods and the target-action paradigm; buttons and text fields; working with matrices of cells.
- Formatters: Round-tripping string to object conversions with NSDateFormatter and NSNumberFormatter; creating and using custom NSFormatter subclasses.
- Forms: Presenting data and capturing user input; synchronizing the model and the view.
- Cocoa Bindings: Automating model-view synchronization; understanding the key-value observing protocol, NSEditor, and the NSController hierarchy; customizing binding behaviors.
- Core Data: Persistence via object-relational mappings; working with managed object contexts and persistence stores; data modeling in Xcode.
- Text: Scrolling behaviors; working with rich text; cut, copy, and paste, and other actions.
- Table Views: Creating a data source; implementing table view delegate methods; handling selection; adding and removing rows.
- Interface Builder: Understanding .nib and .xib files; how objects are archived and unarchived; setting the File's Owner; working with the Library and Inspector panels.
- Outlets and Actions: Making connections between objects in IB; instantiating controllers; setting target and action in controls;
- Multiple .nib Files: Dynamically loading .nib files with NSBundle; figuring out the right level of .nib file granularity.
- User Defaults: Storing and retrieving user-specific settings.