Programming the iPhone 101

Instructor: Chandler McWilliams

4 lessons

July 5th & 12th, 2009 from 12-4pm
July 8th & 16th, 2009 from 7-10pm

Non-members $250
Members $225

Sorry, this class is SOLD OUT. Email to get on the waitlist for a future session.


Learning to program for the iPhone can be a daunting challenge. A new language, a new development environment, new hardware, and new ways of thinking all before you have a working app. This four session workshop will get you up and coding quickly so you can learn the intricacies of creating applications for iPhone by diving right in and doing it. We’ll cover the basics of Cocoa Touch, Apple’s framework for creating applications for the iPhone and iPod Touch, become familiar with objective-c, learn to use Apple’s XCode and Interface Builder development tools, learn how to use the built-in application templates, and how to access features like GPS and the accelerometer.

Chandler McWilliams is currently the technical editor for O’Reilly’s forthcoming book “iPhone User Experience” and is writing a book with Casey Reas titled: “FORM + CODE in design, architecture, and art”, due out next year on Princeton Architectural Press as part of the Design Brief series.

You must have an Apple computer running the latest Mac OSX (Leopard Mac OS X 10.5.5 or higher) with the latest iPhone SDK installed. If you do not have the SDK, please go to and register for free to download the SDK. Please note that the SDK is a rather large download, so please install it before the beginning of the workshop to save yourself time.

Building applications on the iPhone requires some knowledge of the Objective-C programming language. We’ll cover this in the workshop, but prior programming knowledge is HIGHLY recommended, and a working familiarity with objects and Object-Oriented Programming will be very helpful.

Day 1
Cocoa Touch Overview
What is Cocoa Touch
Tour of the IDE
What goes where
iPhone Simulator
Interface Builder
Using a GUI to make a GUI
Hello World!
First look at Objective-C
How Objective-C is NOT normal
Cocoa and MVC
Creating a controller
Create a View
Connecting to the View
Using Delegates

Day 2
A look at the standard user interface elements
Working with text
Working with sheets
Creating a more advanced app using App templates
Creating a Tab bar-based app
Intro to table views

Day 3
App templates continued
Creating a Navigation-based app
How navigation works
Table views in navigation based apps
Working with WebViews
User Defaults
about bundles
Saving Data
the sandbox

Day 4
Hardware features
Using Location services
Using the Accelerometer
Using the Camera
Testing your app on the iPhone or iPod Touch