J. S. Framestore CFC
B. M. London Internet Exchange
Objective-C programming training course contents
PART 1: GETTING STARTED WITH OBJECTIVE-C
The Developer Program:
Objective-C, enrolling as an Apple Developer, setting up the development environment, Xcode. Your first project.
OO programming with Objective-C:
OO projects, Frameworks, classes and instances, encapsulation, accessors, Inheritance.
OO features in Objective-C:
Messages, methods, working with id, nesting messages, method signatures and parameters. allocating and initializing objects. Using Xcode: Xcode, source code control, git and Xcode, Using a Remote Repository.
Projects, Compiler Directives, Prefix headers, main.m, .h files.
PART 2: OBJECTIVE-C BASICS
Messaging in a Testbed App:
Setting Up the Testbed Apps, Adding a Text Field and Connecting It to Your Code, Sending a Message to the Text Field, Reviewing the Message Syntax.
Declaring a Class in an Interface File:
Context, Creating an Instance Variable with id, What Happens When Execution Stops, dynamic binding, Creating an Instance Variable for with the Class Name and with a Superclass Name, instance variable visibility.
Properties in an Interface File:
Interface Variables vs Properties, Declared Properties, Using Attributes. Implementing Properties. @synthesize, @dynamic.
Methods in an Interface File:
Methods in a Class, class and instance methods, Method declaration, returning complex data structures from Methods.
Actions in an Interface File:
Actions, Actions in OS X and iOS, disconnecting actions.
Routing messages with selectors:
Receiver and selector objects in messages, Objective-C Runtime, SEL and @selector (), performSelector, NSInvocation, testing whether an Instance can respond to a selector.
Building on the Foundation:
The Foundation Framework, Foundation Classes, Foundation Paradigms and Policies; Mutability, class clusters, notifications.
Defining a Class in Implementation Files:
Projects, dynamic typing, creating a new App, implementing a method, expanding Classses with init Methods.
Organizing Data with Collections:
Collecting Objects, Property Lists, Runtime, comparing the Collection Classes, Creating a Collection, Objective-C Literal Syntax, Enumerating collections, Testing Membership in a Collection, Accessing an Object in a Collection.
Managing Memory and Runtime Objects:
Managing objects in memory, managing reference counts manually and with ARC, variable qualifiers, variable autorelease.
PART 3: EXPANDING AND EXTENDING CLASSES
Protocols and Delegates:
Subclassing, Protocols, Delegates, Looking Deeper Inside Protocols.
Categories and Extensions:
Comparing categories and protocols, categories vs subclasses, working with categories, class extensions, informal protocols.
Associative References and Fast Enumeration:
Objective-C 2.0 Time-Saving Features, Extending Classes by Adding Instance Variables (Sort of), Using Fast Enumeration.
Revisiting Blocks, Callbacks, Blocks, Exploring Blocks in Cocoa, Cocoa Blocks and Memory.
PART 4: BEYOND THE BASICS
Handling Exceptions and Errors:
Exception and Error classes: NSException, NSError, Identifying exceptions, throwing exceptions, catching exceptions.
Queues and Threading:
Getting Started with Concurrency, Introducing Queues, Dispatch Sources, Using Dispatch Queues.
Working with the Debugger:
Logging Information, Console Logs, NSLog, Smart Breakpoints, enhancing breakpoints with messages.
Using Xcode Debug Gauges for Analysis:
Debug Gauges, Monitoing CPU and memory utilization, monitoring energy, Using Instruments.
PART 5: OPTIONAL TOPICS
C Syntax Summary:
Data Types, Control Structures.
Apps, Packages, and Bundles:
Project Bundles, lproj Files, Asset Catalogs, plist Files, Precompiled Header Files (.pch).
Archiving and Packaging Apps for Development and Testing:
Why Choose Us
SNT trainers score an average of over 90% on the three main areas of:
- Ability to teach
- Technical knowledge
- Answering questions
We limit our maximum class size to 8 delegates; often we have less than this. This ensures optimal interactivity between delegates and instructor.
"Excellent course. The small class size was a great benefit…" M.B. IBM
We write our own courses; courseware does not just consist of slides and our slides are diagrams not bullet point text. A typical chapter provides clearly defined objectives with a chapter overview, slides with text underneath, a quiz at the end to check the learning of the students. Hands on exercises are at the end and are used to reinforce the theory.