Enterprise iPhone and iPad Programming (WA1920)

Request a Quote for this class

About this Course

This 5 day iPhone training course teaches application development for the iOS platform. It covers iPhone, iPad and iPod Touch devices. This course starts off by building a solid foundation in Objective-C. It then goes into details of application user interface development. After that the class teaches network access, SQL database, multimedia and graphics programming. After completing this iPhone training course, a student will be able to build robust, high performing and compelling applications for iPhone and iPad.

Audience Profile

Developers and architects responsible for iOS application development.

At Course Completion

Upon completing this course, students will be able to:

  • User friendly GUI development
  • Network communication
  • Multi-tasking and multi-threading
  • Data storage in file system and database
  • Multi-media programming
  • Detecting memory leaks and resolving them
  • Performance tuning

Prerequisites

Prior knowledge of programming in an object oriented language such as C++, Java or C# is required. Knowledge of Objective-C is not required. Nearly a full day is spent on teaching Objective-C.

Course Outline

Module 1: Introduction to iOS and XCode

  • Introduction to iOS
  • The iPhone Hardware
  • The iOS Architecture
  • The Core Services Layer
  • The Media Services Layer
  • The Cocoa Touch Layer
  • Introduction to XCode
  • Creating an iOS Project in XCode
  • Project Workspace
  • Adding Classes to a Project
  • Class Browsing
  • Code Completion
  • Building Code
  • Running Your Application
  • Debugging
  • Refactoring Code
  • Summary

Module 2: Basics of Objective-C

  • A Brief History
  • Basic Application
  • Writing Functions
  • Native Data Types
  • struct - Custom Data Types
  • Conditional Execution - if
  • Conditional Execution - switch
  • Looping
  • Pointers
  • Why We Need Pointers
  • Pointer to struct
  • Stack Memory
  • Dynamic Memory
  • Array
  • String
  • Summary

Module 3. Classes and Objects

  • Principles of Object Oriented Programming
  • Class and Object
  • Defining a Class
  • Defining an Interface
  • Defining the Implementation
  • Using a Class
  • Defining a Method
  • Method Overloading
  • Accessing Variables and Calling Methods
  • The self and super Keywords
  • Constructors
  • Using Constructor
  • Destructor
  • Class Level Variables
  • Class Level Methods
  • The id Data Type
  • Encapsulation Through Member Variable Protection
  • Hidden Private Methods
  • Summary

Module 4: Inheritance and Polymorphism

  • Introduction
  • Simple Example
  • Using Inherited Behavior
  • Extending Behavior
  • Customizing Inherited Behavior
  • Using Customized Behavior
  • Late Binding and Polymorphism
  • Dynamic Type Checking
  • Summary

Module 5: Category, Protocol and Properties

  • Introduction to Category
  • Category Syntax
  • Category Details
  • Introduction to Protocol
  • Syntax for Protocol
  • Example – Define a Protocol and Conform
  • Example - Implement Protocol Methods
  • Polymorphism Using Protocol
  • Testing for Protocol Conformance
  • Optional Protocol Methods
  • Encapsulation Using Property
  • Property Syntax
  • Example Property
  • Accessing Properties
  • Property Attributes
  • Selector
  • Summary

Module 6: Memory Management

  • Introduction
  • How Reference Count Works
  • Object Ownership Rules
  • Ownership Example
  • Beware of Object Lifetime
  • Writing Setter Methods
  • Simplify Setter Using Property
  • Alternate Allocation Methods
  • Auto Release Pool
  • Working With Auto Release Pool
  • Returning a New Object
  • Writing a Getter Method
  • Auto Release and Property Getter
  • Nested Pools
  • Surviving Auto Release Pool
  • Cocoa and Autorelease
  • Summary

Module 7: The Foundation Framework

  • Introduction
  • NSString
  • String to Number Conversion
  • NSMutableString
  • NSNumber
  • NSMutableArray
  • NSMutableDictionary
  • Getting and Setting Data from Dictionary
  • Iteration Through the Dictionary
  • Memory Management
  • Summary

Module 8: iOS Application Fundamentals

  • Basics of an iOS Application
  • The Application and Its Delegate
  • Creating a Delegate Class
  • Application Lifecycle
  • Application State
  • The Suspended State
  • Application Termination
  • Window and Views
  • The Key Players
  • Create a Window Based Application
  • Key Files in the Application
  • Introduction to Interface Builder
  • Interface Builder GUI
  • The XIB File
  • A Typical XIB File
  • Adding Views to a Window
  • Setting View Attributes
  • Connections
  • Adding an Outlet Variable
  • Connecting an Outlet
  • Adding an Event Handler Method
  • Making an Event Connection
  • The Start Up Sequence
  • Testing and Debugging an Application
  • Summary

Module 9: Model View Controller Based Application

  • The Model View Controller (MVC) Pattern
  • Advantages of MVC
  • Model View Controller in iOS
  • Example: Navigation Controller
  • Controller Hierarchy
  • Usage Pattern Based UI Design
  • iOS Controller Types
  • Example Custom Controller
  • The UIViewController Class
  • Developing a Custom Controller Class
  • Design the Root View
  • Using a Custom Controller
  • Summary

Module 10: Tab Bar Controller

  • Introduction
  • The Anatomy of UITabBarController
  • The Child Controllers
  • Creating a Tab Bar Controller
  • Showing Tab Bar Controller
  • Manipulating Tabs
  • Accessing All Tabs
  • Summary

Module 11. Basics of Table View

  • Introduction
  • Styles of Table View
  • The Architecture
  • Creating a Table View Controller
  • A Closer Look at the Plain Style
  • Developing The Controller Class
  • Creating Cells and Reuse
  • Showing Information in a Cell
  • Cell Style
  • Setting Accessory Icon
  • Create the Table Controller in XIB
  • Show the Table View
  • Handling Row Section Event
  • Grouped Style
  • Summary

Module 12: Navigation Controller

  • Introduction
  • The Anatomy of Navigation Controller
  • Properties of UINavigationController
  • The Content Controller Stack
  • Creating a Navigation Controller
  • Creating Navigation Controller Using API
  • Navigating Within a Tab Bar
  • Moving Forward
  • Moving Backward
  • Customizing the Navigation Bar
  • Adding a Toolbar at the Bottom
  • Summary

Module 13: File System Services

  • Introduction
  • Home Directory Structure
  • Application Provisioning and Files
  • Paths of Standard Application Directories
  • Creating Directories
  • Listing Directory Contents
  • File Management
  • Bulk Read and Write
  • Granular Read and Write
  • Summary

Module 14: SQL Database Storage

  • Introduction to SQLite
  • The SQLite API
  • Opening and Closing Database Connection
  • Defining the Schema
  • Creating a Table
  • Inserting or Updating Data
  • Retrieving Rows
  • Bundling Database With Application
  • Summary

Module 15: Network Programming

  • Introduction
  • The NSURL Class
  • Simple Content Download
  • Asynchronous HTTP Request
  • NSData to String Conversion
  • Making POST Request
  • Basic Authentication
  • Maintaining HTTP User Session
  • Parsing XML
  • Parsing Using NSXMLParser
  • The Delegate
  • Example Delegate Class
  • Summary

Module 16: Multimedia Programming

  • Introduction
  • Playing Audio
  • Steps to Play Audio
  • Advanced Playback Control
  • Monitoring Audio Playback
  • Recording Audio
  • Preparing to Record
  • Control Recording
  • Playing Video
  • Prepare to Play a Movie
  • Start Playing
  • Removing the Player's View
  • Enabling Device Rotation
  • Summary

Module 17: Concurrent Programming and Multi-tasking

  • Introduction to Concurrent Programming
  • Starting Work in Background Thread
  • Auto Release Pool Issue
  • Updating the GUI
  • Canceling Work
  • Running Code Briefly While in Background
  • Example: Continue Running Code in Background
  • Running an Application Indefinitely in Background
  • Checking if a Device Supports Background Execution
  • Guidelines for Background Execution
  • Notifying User While in Background
  • Presenting Local Notification on a Schedule
  • Presenting Notification Immediately
  • Outcome of Notification
  • Summary

Module 18: Supporting Multiple Devices

  • The Problem
  • Development Strategy
  • Create a Device Specific Application
  • Creating Device Specific Executables in a Project
  • Create a Universal Application
  • Creating Device Specific Controllers
  • Using Device Specific Views from a Controller
  • Summary

Module 19: Testing and Tuning Applications

  • Introduction to Unit Testing
  • Introduction to OCUnit
  • Test Case Methods
  • Test Case Initialization and Clean Up
  • OCUnit Support in XCode
  • Profiling Your Application
  • Detecting Memory Leaks
  • Detecting Heavy CPU Usage
  • Memory Tuning Tips
  • Network Tuning Tips
  • Disk I/O Tuning Tips
  • Summary

Module 20: Application Provisioning

  • Introduction to Provisioning
  • Setting Your Application Icon
  • The Application ID
  • The Provisioning Portal Web Site
  • Enrolling Other Developers
  • Obtaining a Developer Certificate
  • Provisioning Profile
  • Create a Provisioning Profile
  • Set the Code Signing Certificate
  • Unit Testing Using a Device
  • Function Testing Using a Device
  • Distribution Profile
  • Uploading Application to App Store
  • Summary