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 4, 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
- 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
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 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. |
| 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 |
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. |
| Garbage Collection |
A deeper look at how the garbage collector figures out what to reclaim |
| 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 gdb console. |
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 United States: (404) 478-9005
For information or to enroll in a class in Netherlands: +31 20 708 4546
For information or to enroll in a class in Germany: +49 931 9911 485
For information or to enroll in a class in Australia: +1 404 478 9005