Course APP102
Cocoa Touch Programming
Course Overview
Cocoa Touch Programming
The emphasis on this course is on programming. The course commences with a detailed overivew of ObjectiveC 2.0 and the Foundation Framework. The early iPhone SDK GUI examples are developed programmatically, outside of Interface Builder so as to provide a feel for the framework and its constituent parts, and an understanding of serialisation. As well as developing proficiency in working with XCode and Interface Builder attendees will learn how to design effective event driven user interface based applications including:
- implementing code for drawing and animation
- setting up and managing UI widgets such as buttons, text fields, and pickers
- how to persist (save) application state and user data
- how to connect to interface objects both by using Interface Builder and by direct programming
- how to access iPhone user input from touches, as well as from the accelerometer and Core Location
- how to make best use of iPhone's table views and navigation controllers
Prerequisites
Attendees are expected to have a working knowledge of objective C programming and some experience of using iPhone applications. A basic knowledge of UML and of object oriented analysis and design techniques would be an advantage.
Course Contents
Basic Concepts of Object-Oriented Analysis and Design
Overview of the iPhone Cocoa Touch framework architecture
Mastering the XCode IDE (Integrated Development Environment)
- creating and building projects
- running and debugging applications
- working with the class and documentation browsers
Intensive overview of ObjectiveC
- dynamic typing
- dynamic binding
- dynamic loading
The Runtime System
- dynamic method lookup
- resolution of unmatched selectors
- message forwarding
Dynamic Properties
- use of @property to declare accessor methods
- use of @synthesize to synthesize accessor methods
Categories and Protocols
Foundation Framework
- delegation
- key-value coding
- mutable subclasses
Files and URLs
- storage and retrieval of filesystems and web data
Memory Management
- reference counting
- garbage collection
- autorelease pools
Property lists and Key-Value pair coding idioms
Understanding object oriented patterns
- Model View Controller pattern
- Composite pattern
- Visitor pattern
- iPhone UIKit design pattern application
Table Views
- UITableView
- UITableViewController
- data source method idiom
- delegate method idiom
Navigation - patterns and idioms
- iPhone navigation controller
- iPhone tab bar controller
Touch Events
- patterns and idioms for handling user touch
Customisation of iPhone UI components
- Core Graphics framework
- Core Animation framework
- image display and manipulation
- animation design and implementation
Data persistence
- types of data store
- principles
- patterns and idioms
Memory Management
- retain counts
- autorelease pools
Processing accelerometer input
Integrating applications with Core Services such as
- the Address Book
- Maps
- Safari
