back to all classes
Cocoa I
If you need to learn to develop applications for Mac OS X, Cocoa I Bootcamp is the absolute best Cocoa training available. The class is intensive, and you should be prepared to work hard.
The class is taught on Mac OS X 10.6, Xcode 4.5, and Objective-C 2.
This course can be taught at your company site. We have taught it for Apple, Intuit, Google, AutoDesk, and many other smaller companies.
What You’ll Learn
Upon completion of Cocoa I, the student will be able to:
- 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
Cocoa I SYLLABUS
| Section | Contents |
|---|---|
|
|
|
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
The class assumes that the student already knows an object-oriented language like Java or C++. Students are not expected to have any experience programming Macs before.