Untitled Document
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 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.
What students will learn?
- 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
- Audience
- 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.
Duration
5 days
Course 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. 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