"iOS is all we do"

iOS8 Logo

Programming in Objective-C


Overview

Objective-C has been Apple's language of choice for iOS App development since the iPhone first arrived on the scene in 2007. And with well over a million Apps in the App Store having been written in Objective-C, its importance and relevance remain crucial for any development team. This 3-day course will provide a thorough exploration of Object Oriented Programming with Objective-C through a myriad of hands-on labs and exercises that will cover both the theoretical and practical aspects of the language. Topics covered will include Objective-C Data Types, working with Collection Objects, Control-Flow, Creating Custom Classes, Inheritance, Polymorphism, Dynamic Binding and Dynamic Typing, the Foundation Framework, working with the iOS File System and much more.
An in-depth exploration of Xcode - Apple's IDE for developing iOS Apps - will also be an integral part of this class as students will use it to write a myriad of programs that demonstrate the concepts being taught.
Students will have gained a solid foundation and understanding of how Objective-C works, a strong familiarity with the Xcode IDE, and thus be ideally prepared to move on to learning iOS App Development.

Download Outline:
PDF Icon


Course Objectives


Target Audience

Beginner programmers as well as experienced programmers who are not familiar with Objective-C.


Prerequisites


Lab Set-Up & Required Tools


Course Outline

  1. Creating and Running an Objective-C Project in Xcode
    1. Xcode IDE overview
    2. Building and testing programs – the workflow

  2. Working with Data Types, Variables & Constants
    1. Declaring Variables, Performing Basic Operations
    2. Primitive Data Types: Ints, Floats, Doubles, Bools, Chars
    3. Strings – Literals, Mutability, Concatenation
    4. Logging variable values and string literals to Xcode's Console
    5. Type Casting

  3. Arithmetics and Expressions
    1. Addition, Subtraction, Multiplication, Division, Modulus
    2. Operator Precedence
    3. Assignment and Comparison operators
    4. Type conversions through mixed operations
    5. Introduction to the Math Library and its functions

  4. Control-Flow
    1. Conditionals
      1. IF and Ternary Statements
      2. Compound Relationals
      3. The Switch Statement
      4. Nested Conditionals
    2. Loops
      1. FOR loops, FOR-Condition-Increment
      2. WHILE loops, DO-WHILE loops
      3. Loop Control Statements: Continue, Break

  5. Creating Custom Classes
    1. Declaring a custom class using @interface
    2. Implementing a custom class using @implementation
    3. Declaring Instance Variables and Instance Methods
    4. Creating Synthesized Accessor (Getter/Setter) Methods
    5. Instantiating Objects from Classes
    6. Sending Messages to Objects and Setting Object Properties

  6. Inheritance
    1. Base Classes, Creating Subclasses
    2. Overriding Methods & Properties
    3. Using Self
    4. Extension through Inheritance

  7. Polymorphism, Dynamic Typing and Dynamic Binding
    1. Same Method Names - Different Classes
    2. Static Typing
    3. Dynamic Typing and Dynamic Binding
    4. Run-time Querying of Objects and Classes
    5. Working with the ID Type

  8. The Foundation Framework and Collection Objects
    1. The NSNumber Class
    2. Working with NSString and NSMutableString
    3. Working with NSArrays and NSMutableArrays
    4. Working with NSDictionaries and NSMutableDictionaries
    5. Working with NSSet and NSMutableSet
    6. Fast Enumeration over Collection Objects

  9. Data Persistence and Working with iOS File System
    1. Working with the NSFileManager Class
    2. File-Paths and the NSURL Class
    3. Reading, writing and copying files.
    4. Working with Directories
    5. Working with NSData and NSMutableData

  10. Custom Data-Types, Protocols and Categories
    1. Declaring and working with Objective-C Structures
    2. Declaring and working with Objective-C Enums
    3. Renaming data-types with Typdef
    4. Extending Foundation Classes with Categories
    5. Understanding and creating Custom Protocols

  11. Archiving and Copying Objects
    1. Shallow vs. Deep Copying
    2. The NSCopying Protocol
    3. Archiving XML Property Lists
    4. Creating Encoding and Decoding Methods
    5. Working with NSKeyedArchiver


Note: Clients are welcomed to request customization of this course to meet any specific needs they may have. Additional lessons can be created and substituted for existing ones to create a custom class.



© 2015 By iOS Learning Labs LLC. All Right Reserved.