back to all classes
Class Icon
Beginning Cocoa

In 7 challenging days, Beginning Cocoa Bootcamp will take you from complete novice to being able to build your first Cocoa application. In addition, you'll become an active participant in the Cocoa programming community, allowing you to continue learning upon completion of the class.

Two days devoted to learning Objective-C are followed by the renowned Big Nerd Ranch 5-day Cocoa I Bootcamp. This developer training offers a condensed and information-rich, hands-on introduction to Objective-C programming. This is the perfect class for programmers interested in learning Cocoa who may lack a background in C or Object-Oriented Programming.

We are using Mac OS X 10.7 and 10.8, Xcode 4.5, and Objective-C 2.

What You’ll Learn

Upon completion of Beginning Cocoa, the student will be able to:

  • Understand classes, objects, and methods
  • Write a first program in Objective-C
  • Define classes and write instance and class methods
  • 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.)
  • Properly manage memory using ARC while preventing memory leaks and retain cycles
  • Demonstrate fluency in Objective-C
  • Write complex applications for Mac OS X
  • Demonstrate fluency in Objective-C
  • Master Interface Builder and Xcode
  • Find and understand the online documentation
  • Demonstrate experience with the most common classes in the frameworks
  • Understand the design patterns used in Cocoa
  • Recognize several common idioms of the Cocoa community

Beginning Cocoa SYLLABUS

Section Contents
Open ArrowOpen Objective-C
Why am I here?
An introduction to the instructor, Objective-C, and the course contents.
Classes and Objects
A brief introduction to the concepts of OOP programming.
Messages and Methods
How work gets done in an Objective-C program.
NSString
Work with strings.
Constants
Using #define and global variables
Preprocessor
Understand what can be done by the preprocessor.
Your First Class
Writing your own classes.
Inheritance
The root. Extension through inheritance. Overriding methods.
retain and release
Introduction to Memory Management.
NSAutoreleasePool
Understand the autorelease stack.
Collection Classes
Arrays, dictionaries, and sets.
Writing files
NSString and NSData.
Callbacks
A brief introduction to target-action, helper objects, anf notifications.
Protocols
Required and optional methods for arbitrary objects.
init
Convenience and designated initializers.
Open ArrowOpen Cocoa I Bootcamp
Why am I here?
An introduction to Cocoa, the instructor, and the course.
Get started
Build a simple app. Discuss tools, frameworks, and workflow.
Objective-C
Master the Objective-C language in two hours.
Controls
Use the target/action design pattern.
Helper Objects
Use the delegation design pattern.
Controller and Bindings
Use bindings to eliminate 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
Allow your users to undo and redo their edits.
Core Data
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 "File's 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 Internationalization
Prepare your application for the global marketplace.
Custom views
Do custom drawing. Learn to save your view as a PDF.
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 and understand how Mac OS X deals with rich text.
Pasteboards and nil-targeted Actions
Implement copy, cut, and paste. Understand how to take advantage of the responder chain.
Categories
Add a method to an existing class without subclassing.
Drag and Drop
Add drag and drop to your custom views.
NSTimer
Create and use timers.
Sheets
Display sheets on your application's windows.
Formatters
Format a character string and convert it to an object with a custom formatter subclass.
OpenGL and Cocoa
Create and manipulate 3-D views in your Cocoa app.
Core Animation
Learn to use CALayer for animation and custom interfaces.
iOS SDK
A brief introduction to the iOS SDK. This will be the first step in transferring your knowledge of Cocoa to the iPhone or iPad.
Processes
Create Unix processes and communicate with them from a Cocoa application.
Web Services
Use NSURLConnection and NSXMLParser to interact with web services.
Memory Management
Learn to manage your application's memory using ARC and retain counts.
Table Views
Use cell- and view-based table views to display data.
Core Data Relationships
Use Core Data to create more sophisticated object graphs using relationships.
Blocks
Use blocks to make your code more powerful and easier to maintain.
Concurrency
Learn the basics of multithreading in Cocoa.
Instruments
Learn how Instruments can help with analyzing performance and memory issues in your application.
Debugging
Get familiar with the Xcode's graphical debugger as well as the lldb console.
Application Architecture
Learn how to use Model-View-Controller to structure a complex, maintainable Cocoa application.
REQUIREMENTS

Without prior experience in either a procedural programming language (such as C, Pascal, VB, or PHP) or another object-oriented platform (such as Java or C#) this class may prove to be extremely challenging.

Important Numbers

Important Telephone Numbers

For information or to enroll in a class in United States: (770) 817-6373
For information or to enroll in a class in Europe: +31 6 28 833 433