Skip Ribbon Commands
Skip to main content

MA-WA1920 - Enterprise iPhone and iPad Programming

Price:

Duration: 5 Days

Audience:

Level:

Technology:

Delivery Method:

Software Assurance Value:

Microsoft CPE:

Course Information

Course Description

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.

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 Audience

​Developers and architects responsible for iOS application development.

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 Device
  • 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

Course 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 Schedule
This course is not scheduled yet.