The iPhone SDK provides the tools and resources needed to create native iPhone applications that appear as icons on the user’s Home screen. Unlike a web application, which runs in Safari, a native application runs directly as a standalone executable on an iPhone OS–based device. Native applications have access to all the features that make the iPhone and iPod touch interesting, such as the accelerometers, location service, and Multi-Touch interface. They can also save data to the local file system and even communicate with other installed applications through custom URL schemes.

In iPhone OS, you develop native applications using the UIKit framework. This framework provides fundamental infrastructure and default behavior that makes it possible to create a functional application in a matter of minutes. Even though the UIKit framework (and other frameworks on the system) provide a significant amount of default behavior, they also provide hooks that you can use to customize and extend that behavior.
This document is intended for both new and experienced iPhone OS developers who are creating native iPhone applications. Its purpose is to orient you to the architecture of an iPhone application and to show you the key customization points in the UIKit and other key system frameworks. Along the way, this document also provides guidance to help you make appropriate design choices. It also points out additional documents that may offer advice or further discussion of a given subject.
Although many of the frameworks described in this document are also present in Mac OS X, this document does not assume any familiarity with Mac OS X or its technologies.
Before you start reading this document, you should have at least a fundamental understanding of the following Cocoa concepts:
Basic information about Xcode and Interface Builder and their role in developing applications
How to define new Objective-C classes
How to manage memory, including how to create and release objects in Objective-C
The role of delegate objects in managing application behaviors
The role of the target-action paradigm in managing your user interface
Developers who are new to Cocoa and Objective-C can get information about all of these topics in Cocoa Fundamentals Guide.
Development of iPhone applications requires an Intel-based Macintosh computer running Mac OS X v10.5 or later. You must also download and install the iPhone SDK. For information about how to get the iPhone SDK, go to http://developer.apple.com/iphone/.
This document has the following chapters:
“The Core Application” contains key information about the basic structure of every iPhone application, including some of the critical tasks every application should be prepared to handle.
“Window and Views” describes the iPhone windowing model and shows you how you use views to organize your user interface.
“Event Handling” describes the iPhone event model and shows you how to handle Multi-Touch and motion-based events. It also shows you how to incorporate copy and paste operations into your applications.
“Graphics and Drawing” describes the graphics architecture of iPhone OS and shows you how to draw shapes and images and incorporate animations into your content.
“Text and Web” describes the text support in iPhone OS, including examples of how you manage the system keyboard.
“Files and Networking” provides guidelines for working with files and network connections.
“Multimedia Support” shows you how to use the audio and video technologies available in iPhone OS.
“Device Support” shows you how to take advantage of external accessories, location tracking services, the accelerometers, and the built-in camera.
“Application Preferences” shows you how to configure your application preferences and display them in the Settings application.
If you have feedback about the documentation, you can provide it using the built-in feedback form at the bottom of every page.
If you encounter bugs in Apple software or documentation, you are encouraged to report them to Apple. You can also file enhancement requests to indicate features you would like to see in future revisions of a product or document. To file bugs or enhancement requests, go to the Bug Reporting page of the ADC website, which is at the following URL:
http://developer.apple.com/bugreporter/
You must have a valid ADC login name and password to file bugs. You can obtain a login name for free by following the instructions found on the Bug Reporting page.
The following documents provide important information that all developers should read prior to developing applications for iPhone OS:
iPhone Development Guide provides important information about the iPhone development process from the tools perspective. This document covers the configuration of devices and the use of Xcode (and other tools) for building, running, and testing your software.
Cocoa Fundamentals Guide provides fundamental information about the design patterns and practices used to develop iPhone applications.
iPhone Human Interface Guidelines provides guidance and important information about how to design your iPhone application’s user interface.
The following reference and conceptual documents provide additional information about key iPhone topics:
UIKit Framework Reference and Foundation Framework Reference provide reference information for the classes discussed in this document.
View Controller Programming Guide for iPhone OS provides information on the use of view controllers in creating interfaces for iPhone applications.
Table View Programming Guide for iPhone OS provides information about working with table views, which are used frequently in iPhone applications.
The Objective-C Programming Language introduces Objective-C and the Objective-C runtime system, which is the basis of much of the dynamic behavior and extensibility of iPhone OS.
Last updated: 2009-10-19