IOS Apps Programming

Course Objective
Become proficient in the Objective C programming language. Learn how to write object-oriented programs using Objective-C classes and learn about its message passing framework.
Learn how Objective-C can be used in practical situations by writing IOS apps for IPhone using the Coco Touch framework.
Learn to use various tools such as Xcode and Interface Builder to develop Objective-C apps.
Students should have experience with at least one programming language such as C, C++, Java, C#,
Knowledge of object oriented concepts is desirable.
What You Get
iOS Programming: The Big Nerd Ranch Guide
Course slides
Course notes and exercises.
Hardware and Software Requirements
Mac computer with IOS development environment.
Course Outline
  1. Getting Started
    • Install Xcode and IOS SDK
    • Create a simple IOS App
    • Interface Builder
    • IOS Simulator
  2. Objective C
    • Header and implementation files
    • Structure of Objective C program
    • Interface and implementation sections
    • Classes and Objects
    • Pointers
    • Messages and methods
    • Properties
    • Initialization
    • Inheritance
    • Protocols and Delegates
    • Numbers, Strings
    • Arrays, Dictionary
    • Blocks
  3. Introduction to IOS Apps
    • IOS application design paradigm (MVC)
    • View Controllers
    • Outlets and Actions
    • Application Delegate
  4. User Interface
    • Storyboards, Nibs
    • Actions and Event Handlers
    • Text Views
    • Keyboards
    • Sliders, Switches, Buttons
    • Web view
    • Orientation Changes
    • Alert View
    • Action Sheet
    • Tab Bars
  5. MultiView Applications
    • Table views and Table View Cells
    • Grouped and Plain Tables
    • Custom table view cells
    • Grouped and Indexed Sections
    • Responding to row selection
    • Navigation Controllers and Table Views
  6. Persisting Data
    • Application Sandbox
    • Application Backup
    • Application Bundle
    • Application Settings
    • NSUserDefaults
    • Serailization, NSCoding
    • File Handling
    • Database storage using SQLite3
    • Core Data
  7. Basic Networking
    • HTTP requests
    • NSURLSession
    • JSON
    • Authentication
    • Web Services, SOAP
  8. Concurrency
    • Manual Threads
    • NSOperation
    • Grand Central Dispatch (GCD)
    • Thread Queues

Well Designed

I like the way the course is designed so that the emphasis is on presenting the material from the programmer's point of view. This is in contrast to other hands on courses, where the emphasis is more on knowing how to use the UI. Elizabeth Moore (Passport Canada)

Well Taught

The course was well-taught from a teacher who has extensive industry and teaching experience. Combined with his meticulous attention to detail, genuine sincerity in improving his students' skillset, and unbeatable price, it would be hard to find another course with similar offerings elsewhere. Will Au (Cre8Object)

Great Labs

I like the fact that we do our labs at home and can discuss at the next one. I think the technical theory is excellent. It gives the right amount of details of what happens in the background in order to understand the whole picture. Stephane St. Denis (Passport Canada)

Great Knowledge

Great knowledge, teacher has a well documented answer for every question asked, was never stumped and answer is given right away. Teacher does not have to look for the answers, he knows what he is talking about. Benoit Hamelin (Passport Canada)

Very Comprehensive

The course is very comprehensive in content; the exercises reinforce concepts intensively, interlinking the hands on aspects. Piyush Sharma (Consultant with Ajilon Canada)