Go Back

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

Go Back


---------
home | site map
training | internet solutions | technical services
about us | clients | partners | contact us