Objective-C Programming
A rapid introduction to the basics of ANSI C and Objective-C programming. This course is designed get you up to speed on the language features and Foundation framework APIs you'll need in everyday Cocoa development. Provides deep insight into Objective-C's dynamic runtime system, along with some of the more challenging aspects of C and Objective-C programming.
Description
Objective-C is a powerful, dynamic, C-based object-oriented language. It's the language in which nearly all of Apple's iOS frameworks are written. Objective-C's dynamism was instrumental in the development of the Cocoa user interface, which was originally developed as part of the NeXTSTEP operating system.
A solid understanding of Objective-C can be instrumental to understanding many critical aspects of iOS development. Our fast-paced, 2-day Objective-C Programming class will help you gain meaningful insight, along with hands-on facility.
Course Overview
This fast-paced, two-day intensive will get you off to a quick start coding in Objective-C. There's plenty of lab time to allow you to learn by doing. And our exercises are designed to reinforce key concepts in a way that will help you gain proficiency fast. Between lecture sessions and hands-on labs you'll get a first-hand introduction to fundamentals of the ANSI C programming language and object-oriented programming with Objective-C classes, objects, methods, instance variables, messages, and more.
- Learn the fundamentals of ANSI C programming and the standard C libraries.
- Get solid on C functions, pointers, and data structures.
- Learn to create and use Objective-C objects, classes, and methods.
- Understand dynamic binding, messaging, and the Objective-C runtime.
- Learn how and where to use Objective-C categories and protocols.
- Gain plenty of hands-on experience with Foundation classes and APIs.
Course Outline
Xcode – Learn to use Xcode to edit, build, and debug your projects. We'll also share loads of amazing tricks and tips.
C Fundamentals – Master all the basics: variables, data types, expressions, operators, statements, functions, looping and branching, and more.
The C Compiler – Understand the phases of compilation, from preprocessing through linking and loading.
The C Preprocessor – Harness all kinds of preprocessor magic — from simple header file imports, through macros and conditional compilation.
Addresses and Pointers – Get a solid handle on single- and multi-dimensional arrays, pointer arithmetic, and pointers as arguments to functions.
Dynamic Memory Allocation – Understand how memory allocation and deallocation work at the C library API level.
Classes and Objects – Learn the basics of declaring Objective-C classes, writing method implementations, and allocating and initializing instances.
Message Expressions – Message expression syntax can be a little intimidating at first; we’ll teach you techniques that will help you get comfortable quickly.
Message Dispatching – Gain insight into how the Objective-C runtime system dynamically dispatches messages, and learn powerful features such as message forwarding and delayed performs.
Value Classes – Learn to work with Foundation classes that act as wrappers for numbers, strings, and other low-level data types.
Collections – Learn to work with mutable and immutable arrays, dictionaries, and other collection types, as well as helper objects such as predicates and sort orderings.
Key-Value Coding – KVC is a critically important mechanism that allows properties to be accessed via introspection. Learn how it can help automate tasks such as data marshaling (e.g., between JSON and model objects).
Protocols – Learn to declare protocols with required and optional methods, and get familiar with commonly used framework protocols.
Categories – Learn to enhance existing classes by adding custom methods. We’ll also show you how to use categories to streamline your codebase.
Managing Memory – Gain a concrete understanding of how the Automatic Reference Counting (ARC) system manages memory behind the scenes.
Declared Properties – Learn how to work with streamlined property declarations and auto-synthesized accessor methods.
Unit Testing – Get up to speed on unit testing with the XCTest framework, using Xcode's built-in tooling.
Audience
Professional developers who are interested in learning to develop Cocoa touch apps for iOS.
Prerequisites
Experience with a compiled language such as C# or Java, or a dynamic language such as Ruby or Python.