The Basics Before you begin writing code, you should do the following: Read iPhone Human Interface Guidelines to learn about the general types of iPhone applications, the characteristic appearance and behavior of user-interface objects, and general human-interface principles. Read Windows and Views in iOS Application Programming Guide to understand the concepts behind the two basic components of all applications, windows and views. Next see the sample code project UICatalog, which demonstrates how to create and configure a variety of user interface objects. Next Steps To make the best use of the classes that the UIKit framework provides for your application, you first need to decide what human-interface style the application is going to adopt. If your application is going to use controls or table views, you’ll also want to find out how to properly configure those objects. Designing for the Style of Application Which information you should read depends on the kind of application you are designing: If you are creating a full-screen application that draws directly to the screen without using any controls, read Windows and Views, Event Handling, and Graphics and Drawing in iOS Application Programming Guide. If you are creating a user interface that has multiple commands or modes, and you want to use a toolbar, read UIToolbar Class Referenceand View Controller Programming Guide for iOS. If you are creating a user interface with multiple screens that display hierarchical data, read UINavigationBar Class Reference and View Controller Programming Guide for iOS. If you want to combine radio toolbars and navigation bars or present modal views, read View Controller Programming Guide for iOS. To further clarify your understanding of view controllers, navigation bars, and toolbars, look at sample code projects such as NavBar andTheElements. Managing Controls and Tables Controls and table views are two important kinds of views used by many iPhone applications. A control is a view that, when manipulated in a certain way by a user, sends a message (called an action) to another object in the application (called the target). A table view presents rows of information that users can scroll through. Users can often tap a row in a table view to display a new view with information specific to the selected item. Users can also edit a table view to add, delete, and reorder rows. To learn how to configure a control such as a button or date picker so that, when manipulated, it sends an action message to a target: Read UIControl Class Reference. Read the class reference documentation for the particular control. Examine the code in the sample code project UIShowcase. To learn how to configure a table view, respond to selections, and manage such activities as inserting, deleting, and reordering rows: Read UITableView Class Reference and UITableViewCell Class Reference. Examine the code in the sample code project TableViewSuite. Making Other Enhancements to the User Interface You can enhance the presentation your application makes in various ways, including the following: If you want to rotate your user interface when the orientation changes, read View Controller Programming Guide for iOS. To internationalize your application, preparing it for localization in multiple languages, read “Internationalizing Your Application” in iOS Application Programming Guide and Internationalization Programming Topics. If you want to present contact information such as a person’s name, email address, and phone number, read Address Book Programming Guide for iOS and Address Book UI Framework Reference for iOS.
A Tour of Xcode
Xcode Workspace Guide
Xcode Project Management Guide
Documentation Set Guide
What's New in Xcode
Xcode Build System Guide
Xcode Debugging Guide
Interface Builder User Guide
Read Dashcode User Guide to learn how to use Dashcode to create web applications and Dashboard widgets.
Cocoa Fundamentals Guide, iOS Application Programming Guide, Implementing diff parts of your application, iPhone HIG, iPad HIG, Event Handling Guide for iOS, View Controller Programming Guide for iOS, Text and Web Programming Guide for iOS, Multimedia Programming Guide, iPad Programming Guide, environment, “The Application Runtime Environment., The Core Application Design”, Supporting Common Application Behaviors, “Implementing Standard Application Behaviors.”, Executing Code in the Background”, Supporting High-Resolution Screens.”, “Implementing Application Preferences.”, Cocoa Drawing Guide, View Programming Guide, Introduction to Coding Guidelines for Cocoa
You should read this document to learn how to implement Cocoa model classes. You are expected to be familiar with Cocoa standards, conventions and so on as described in Naming Conventions and Defining a Class in The Objective-C Programming Language (for example, class names should start with a capital letter; instance variable names should start with a lower case letter; instance variables should not be public, and so on). In implementing a model object, you should adhere to themodel-view-controller (MVC) design pattern. To understand Core Data and why you might want to use it, see Getting Started with Core Data.
Beginner, The Objective-C Programming Language, Learning Objective-C: A Primer, Naming Conventions
Object-Oriented Programming with Objective-C
A Short Practical Guide to Blocks
Blocks Programming Topics
Objective-C Runtime Programming Guide
You should read this document to learn about the object ownership policies and related techniques for creating, copying, retaining, and disposing of objects in a reference-counted environment. This document does not describe details of allocating and initializing objects, and implementing initializer methods. These tasks are discussed in “Allocating and Initializing Objects” in The Objective-C Programming Language.
Allocating and Initializing Objects
Cocoa fundamentals: Design Patterns
The Objective-C Programming Language: Protocols
The Objective-C Programming Language: Declared Properties
App Delegate 411
you should be familiar with the iOS application architecture, described in iOS Application Programming Guide. You should also be familiar with basic programming concepts.
information on how to use nib files at runtime, including how to load them from your code
Core Data is not an entry-level technology. It leverages many other Cocoa technologies and design patterns. You must understand these technologies and patterns before you can use Core Data effectively. Prereqs: C ocoa fundamentals Objective-C, memory management, notifications, and delegation. Data modeling and the model-view-controller design pattern The terminology used by Core Data is defined and explained in the “Object Modeling” in Cocoa Fundamentals Guide section of Cocoa Design Patterns. You should also ensure you understand the model-view-controller design pattern, and other related design patterns, described in the same document. Many of the ideas and patterns upon which Core Data is built derive from the relational model of database design—it is extremely helpful to have a basic understanding of this subject (see, for example, Wikipedia (Relational_model)). Key-value technologies Key-value coding and key-value observing underpin Core Data. You should understand the concepts described in Key-Value Coding Programming Guideand Key-Value Observing Programming Guide.
Code Size Performance GuidelinesCode Size Performance Guidelines
Code Speed Performance Guidelines
File-System Performance Guidelines
Memory Usage Performance guidelines
Concurrency Programming Guide