Search
Recommended Books

A Guide to iPhone Dev Documentation


There was a time when knowledge was closely held by an elite few and information resided in dusty documents in filing cabinets. But now, as is often the case in our world of new media, shared content, infinite storage, and near universal access, we in the burgeoning iPhone development community have the opposite problem: such an embarrassment of riches (of information and documentation) that the most difficult challenge is to separate the wheat from the chaff.

It's the best kind of problem to have, but it's a problem, no less. Even if you confine your search to the most obvious single source -- Apple itself -- the glut of information can seem overwhelming, especially to the novice or hobbyist Mac OS developer. In this article, I hope to highlight some of the documentation from Apple that I (fellow novice) have found most accessible but at the same time specifically useful.

Apple's iPhone Dev Center

Of course, Apple's own iPhone developer website is where to start. developer.apple.com/iphone is the well organized portal to all that follows. You have to be a "Registered iPhone Developer" or member of the Apple Developer Connection (ADC) to access the content here, but it's free to join and painless to sign up. (Most of the links below require registration.)

The SDK

Then there's the iPhone SDK (Link launches .dmg download). Download and install it to integrate the iPhone libraries, Frameworks, and templates into your Xcode installation. (Need Xcode? Go here.)

Apple's Training Videos

It may seem marginally useful to include a series of videos in a collection of technical documentation, but the presentations in this section are surprisingly helpful (link launches iTunes Store, but all content is free). They are quite high level, but if you're new to OS X development, they are a terrific way to jump start your understanding of iPhone's software's technical architecture.

The most helpful presentations for first time OS X developers are Introduction to the iPhone SDK and iPhone Application Frameworks - In Depth. They will help you identify the different Layers of the architecture and which Framework within each Layer you will want to focus on for your development.

The other presentations describe individual frameworks, give guidance on some design best-practices, and highlight the selling points of Apple's free development tools. There's also a video specifically for web developers targeting iPhone. (By the way, you can synch these videos to your iPhone. Each one is a about 15-20 minutes long; perfect for your train or bus commute.)

Documentation

Since the video presentations provide an orientation to the various aspects of the iPhone development environment, you'll be thirsting for more detailed information on how to actually implement your ideas on the small screen. Where to look next depends on your experience level.

Most iPhone development is done in Objective-C. If you're new to the language, Apple's iPhone Dev Center suggests having a look at Learning Objective-C: A Primer. It's a nice, very brief introduction to Objective-C. Coupled with a good understanding of the C programming language, it will give you enough to understand the syntax that you'll see in the various code examples. But if you are interested in a more detailed overview of the language, Apple also has a much more comprehensive document: The Objective-C 2.0 Programming Language. It is quite a good resource.

Next, if you are familiar with Objective-C, but still need to brush up on the OS X Frameworks, iPhone OS Frameworks is the place to start. Documentation for all the Frameworks are grouped into their Layers (Cocoa Touch, Media, Core Services, and Core OS), and these pages provide various types of documentation for topic: references, guides, and sample code.

Happily, this glut of information is very well organized and, just as importantly, Apple has provided a very handy filter tool to help you locate documentation by topic, framework, or document type.

At a very minimum, you will want to have a look at the documentation for the UIKit. This Framework fills a role similar to the AppKit framework for OS X. It has all the libraries and classes that you will use to create your application's user interface, and in many cases, it is all you will need to provide a front end to your application's internal logic.

Sample Code

There's only so much documentation you can read before you simply have to try it out yourself. Both the iPhone OS Frameworks page, mentioned above, and the sample code featured on the main iPhone Dev Center page have dozens of sample Xcode projects that you can download, run, modify, and experiment with.

One sample project that every iPhone developer should start with and can learn from is the UICatelog. It showcases a great many of the Views and ViewControllers of the UIKit Framework: all of the standard iPhone views, buttons, inputs, navigation widgets, etc., are demonstrated in one project. With a thorough read through of this project (and, if you like, some careful cut & paste), you can get up to speed on how to design and build the UI front end of your application very, very quickly.

Other sample projects demonstrate how to take advantage of the specific hardware (AccelerometerGraph, SpeakHere, etc.) and the general capabilities (LocateMe, WiTap, GLPaint, etc.) of iPhone. There are many more, as well.

Final Thoughts

Even though there are many links to follow in this article, I hope this helps you identify the specific levels and areas of information available for your entry into iPhone development. At the very least, these bare essentials: video, language overview, documentation, and sample code (all listed above), will get you started enough that you can identify where you will want to seek the detail about the specific functionality your applications need.

AddThis Social Bookmark Button
Comments (8)

8 Comments

jritter said:

Matt, thanks for this great collection of useful links. I was wondering about Apple's intentions to provide tools and interface for iPhone Enterprise integration. They offer a site and a couple of pdfs at

http://www.apple.com/iphone/enterprise/integration.html

but that's obviously not enough. Do you happen to know some other locations for information, i.e. about the so called iPhone Configuration Utility?

adub said:

You should reference Richard Wagner's iPhone/iPod Touch programming book from Wrox. And perhaps the slim documentation on SproutCore. Thanks.

Sachin said:

Thanks I was in search of this clean and to the point info for iPhone Dev.

Eric Allam said:

I created a tumblog just for learning more about iPhone SDK development as I myself go through the process. Might be helpful: hacktonight.tumblr.com

Matt Twomey Author Profile Page said:

Thanks, Eric, for the link. You've collected a couple pages I haven't looked at yet.

Thanks, also for the linkage. If you haven't seen another of my posts, The Tools of the Trade, it (or more directly, some of the links it refers to), might make good additions to your tumblog as well.

Matt

jame said:

thanks I have searched for this

Barry said:

Hi, I've been searching the net as a total beginner to iphone development as I wanted to build an app that I have in mind. Specifically its a searchable database kind of thing, pictures and text etc. but I haven't a clue were to start. Any pointers would be great!

Cheers!

Leave a comment


Type the characters you see in the picture above.