Duration: 5 Days
In this course, you will learn Objective-C and the iOS SDK by establishing the most important programming fundamentals. You'll become familiar with the Xcode Integrated Development Environment and gain a better understanding of the history of Objective-C by brushing-up on ANSI-C. You'll discover the compiler pipeline starting with the preprocessor and progressing through the linker. You will cover the fundamentals of ANSI C and Objective-C and get a solid background for learning iPhone and iPad development.
What You Will Learn
- Work efficiently and creatively in Objective-C
- Fundamentals of ANSI C programming
- Object-oriented programming with Objective-C classes, objects, methods, messages, instance variables, and more
- How Objective-C actually works to help you when you are trying to learn a new feature of Objective-C
- Resolve a problem in the debugger
Audience
Programmers and non-programmers wanting to firmly establish fundamental programming theory and practice
Prerequistes
Some programming experience is recommended
Course Outline
Day 1
- Creating, Understanding, and Compiling a Simple Program
- Variable Basics
- Objects
- Instances and Methods
- Creating a Class
- @interface Section
- @implementation Section
- Program Section
- Accessing Instance Variables and Data Encapsulation
- Data Types and Constants
- Arithmetic Expressions
- Calculator Class
- For Statement
- While Statement
- Do Statement
- Break Statement
- Continue Statement
Day 2
- If Statement
- Switch Statement
- Boolean Variables
- Conditional Operator
- Separate Interface and Implementation Files
- Synthesized Accessor Methods
- Accessing Properties Using the Dot Operator
- Multiple Arguments to Methods
- Local Variables
- Self Keyword
- Allocating and Returning Objects from Methods
- Inheritance
- Extension Through Inheritance: Adding New Methods
- Overriding Methods
- Abstract Classes
- Polymorphism
- Dynamic Binding and the ID Type
- Compile Time vs. Runtime Checking
- ID Data Type and Static Typing
- Asking Questions About Classes
- Exception Handling Using @try
Day 3
- Initializing Objects
- Scope
- Enumerated Data Types
- Typeder Statement
- Data Type Conversions
- Bit Operators
- Categories
- Class Extensions
- Protocols and Delegation
- Composite Objects
- The #define Statement
- The #import Statement
- Conditional Compilation
- Arrays
- Functions
- Blocks
- Structures
- Pointers
- Non-Objects
- Miscellaneous Language Features
Day 4
- Foundation Documentation
- Objects
- Number
- String
- Array
- Dictionary
- Set
- Managing Files and Directories: NSFileManager
- Working with Paths: NSPathUtilities.h
- Basic File Operations: NSFileHandle
- NSBundle Class
- Automatic Garbage Collection
- Manual Reference Counting
- Event Loop and Memory Allocation
- Summary of Manual Memory Rules
- Automatic Reference Counting (ARC)
- Strong Variables
- Weak Variables
- @autorelease Blocks
- Method Names and Non-ARC Compiled Code
Day 5
- Copy and MutableCopy Methods
- Shallow vs. Deep Copying
- Implementing Protocol
- Copying Objects in Setter and Getter Methods
- Archiving with XML Property Lists
- Archiving with NSKeyed Archiver
- Writing Encoding and Decoding Methods
- Using NSData to Create Custom Archives
- Using the Archiver to Copy Object
- Framework Layers
- Cocoa Touch
- iOS SDK
- iPhone Fraction Calculator
Course Labs
This course is designed as an effective combination between instructor-led demonstrations and supervised working labs. Practice exercises are designed to reinforce key concepts taught, to help you gain proficiency fast.