BeginningCocoa
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.6, Xcode 3, and Objective-C 2.
Upcoming Classes
What You’ll Learn
Upon completion of Beginning Cocoa, the student will be able to:
Objective-C
- Understand classes, objects, and methods
- Write a first program in Objective-C
- Use basic control constructs for looping, decision-making, etc.
- 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.)
- Retain and release objects correctly to prevent memory leaks
- Demonstrate fluency in Objective-C
Cocoa I Bootcamp
- 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
| Objective-C |
Click to Hide |
| 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 I |
Click to Hide |
| 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 |
In 10.3, Apple has 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. |
| Core Data |
Use CoreData with bindings to create full-featured applications easily. |
| Archiving |
Serialize and deserialize object graphs. (Using keyed archiving.) |
| Advanced CoreData |
Use advanced CoreData features like unsupported datatypes, inheritance, and validation. |
| 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. |
| 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. |
| Printing |
Add printing to your application. Deal with pagination. |
| OpenGL and Cocoa |
Create and manipulate 3-D views in your Cocoa app. |
| Core Animation |
How to use CALayer |
| iPhone SDK |
A brief introduction to the iPhone SDK. This will be the first step in transferring your knowledge of Cocoa to the iPhone |
| Processes |
Create Unix processes and communicate with them from a Cocoa application. |
| Garbage Collection |
A deeper look at how the garbage collector figures out what to reclaim |
| Web Services |
How to use Web Services via NSURLConnection and NSXMLDocument |
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.
Reviews
For information or to enroll in a class in North America: (404) 478-9005
For information or to enroll in a class in Europe: +49 (9333) 903 901
For information or to enroll in a class in Asia Pacific: (404) 478-9005