Enterprise iPhone and iPad Programming
Course
Specifications
Courseware: Enterprise iPhone and iPad Programming
Course length: 5 days
Course times: 8:30 a.m. - 4:30 p.m.
Course
Objective:
This 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 on
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.
Target
Student:
Developers and architects responsible for iOS application development.
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
Objectives
-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
Course Content
Chapter 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
References
Summary
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Quiz
Summary
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Chapter 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
Development Provisioning Profile
Create a Development Provisioning Profile
Set the Code Signing Certificate
Unit Testing Using a Device
Function Testing Using a Device
Distribution Provisioning Profile
Uploading Application to App Store
Summary