iPhone Application Development

by Stanford University in Computer Science

Tools and APIs required to build applications for the iPhone platform using the iPhone SDK. User interface designs for mobile devices and unique user interactions using multitouch technologies. Object-oriented design using model-view-controller pattern, memory management, Objective-C programming language. iPhone APIs and tools including Xcode, Interface Builder and Instruments on Mac OS X. Other topics include: core animation, bonjour networking, mobile device power management and performance considerations. Prerequisites: C language and programming experience at the level of 106B or X. Recommended: UNIX, object-oriented programming, graphical toolkits.


Lecture 1

Introduction to Mac OS X, Cocoa Touch, Objective-C and Tools

Discussion Board
(January 5, 2010) Alan Cannistraro starts the quarter with an introduction to Mac OS X, Cocoa Touch, and Objective-C.
Lecture 2

Objective-C and Foundation Framework

Discussion Board
(January 7, 2010) Josh Shaffer provides an introduction to programming in Objective-C and moves on to cover foundation frameworks.
Lecture 3

Custom Classes, Object Lifecycle, Autorelease

Discussion Board
(January 12, 2010) Alan Cannistraro covers creating custom classes, the object lifecycle, auto release, and properties in Objective-C.
Lecture 4

Building an Application, MVC, Nib Files, Controls

Discussion Board
(January 14, 2010) Alan Cannistraro covers the application lifecycle, MVC design, Interface Builder and Nib files, control and target-action; and demonstrates HelloPoly.
Lecture 5

Views, Drawing, and Animation

Discussion Board
(January 19, 2010) Josh Shaffer discusses views, drawing, text and images, and animation.
Lecture 6

Designing iPhone Applications, MVC, View Controllers

Discussion Board
(January 21, 2010) Alan Cannistraro discusses designing iPhone applications, why the MVC model should be used and how to implement it, and ends with view controllers.
Lecture 7

Navigation & Tab Bar Controllers

Discussion Board
(January 26, 2010) Josh Shaffer explores navigation controllers and application data flow, customizing navigation, tab bar controllers, combining approaches.
Lecture 8

Scroll Views and Table Views

Discussion Board
(January 28, 2010) Josh Shaffer explains scroll views; displaying data and controlling appearance and behavior in table views.
Lecture 9

Data in Your iPhone App

Discussion Board
(February 2, 2010) Guest lecturer Chris Marcellino, an engineer at Apple, covers data in your iPhone app: saving and loading local data and accessing remote data over the internet.
Lecture 10

Text Input and Presenting Content Modally

Discussion Board
(February 9, 2010) Josh Shaffer continues his lecture on threading. Brad Moore then introduces iPhone keyboards, customizing text input, and presenting content modally.
Lecture 11

Web Views; Locations and Maps

Discussion Board
(February 11, 2010) Alan Cannistraro presents loading and navigating web content; location and maps.
Lecture 12

Touch Events & Multi-touch

Discussion Board
(February 18, 2010) Jason Beaver covers multi-touch events and gestures.
Lecture 13

Device APIs; Location, Accelerometer & Camera; Battery

Discussion Board
(February 23, 2010) Josh Shaffer covers hardware features and battery life and power consumption.
Lecture 14

Audio APIs, Video Playback, Settings

Discussion Board
(February 25, 2010) Alan Cannistraro talks about audio APIs; video playback and editing; and setting bundles.
Lecture 15

Bonjour, NSStream, GameKit

Discussion Board
(March 2, 2010) Alan Cannistraro covers networking: automatic configuration in Bonjour, asynchronous communication in NSStream, and GameKit.
Back