UMBC Training Centers logo

Enterprise iPhone and iPad Programming

 

Course Description | Outline | Software Development | IT Training

Outline

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. AUTOMATIC REFERENCE COUNTING (ARC)

  • Introduction
  • Adding ARC Support to a Project
  • Basic Assignment
  • Release at the End of the Method
  • Returning an Object from a Method
  • Releasing Member Variables
  • Changes to Property Attributes
  • Summary

CHAPTER 8. 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 9. 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 10. 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 11. 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 12. 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 13. 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 14. STORYBOARD

  • Introduction
  • Creating a Storyboard
  • Defining the Screen Flow
  • Configuring Entry Point
  • Passing Data to A Launched Controller
  • Summary

CHAPTER 15. 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 16. 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 17. 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 18. 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 19. CONCURRENT PROGRAMMING AND MULTI-TASKING

  • Introduction to Concurrent Programming
  • Starting Work in Background Thread
  • Auto Release Pool Issue
  • Updating the GUI
  • Running Code in a Thread Pool
  • 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 20. 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 21. 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 22. 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