Stanford Continuing Studies
CS47: Beginning iPhone Application Development
When and Where
Thursdays, 7:00 - 8:50pm10 weeks, January 14 - March 18
Bldg. Y2E2 - 473 Via Ortega, Room Rm 111 (google map)
Office Hours:
Saturdays 10am-11am, Red Rock Cafe (Yelp Info) - SECOND FLOOR
Class Discussion Group
http://groups.google.com/group/stanfordcs47Course Description
The iPhone is a fantastic mobile platform to work with, but many developers don’t know where to start. In this course, students will learn the fundamentals of creating and distributing iPhone applications. The course will cover topics such as the Objective-C programming language, using the Xcode development tools, and how to interact with the Cocoa Touch API. By the end of the course, students should expect to be able to create their own iPhone applications and have them published in the iTunes App Store.Importance of Prerequisites
This class requires that students have a strong object-oriented programming background, and are fluent is either C/C++ or Java.This course jumps directly into Objective-C programming concepts, and is geared toward seasoned programmers that are confortable coming up to speed in a new language very quickly. Objective-C shares a large amount of syntax with C, so those fluent in C/C++ or Java will be able to pick up the small changes quickly. Those without a C/C++ or Java background will have to spend time outside of class getting up to speed.
Students are also required to have access to a computer running Mac OS X 10.5+ (Leopard or Snow Leopard) on an Intel platform. The iPhone development tools are only available for these operating systems, and are NOT available for Windows PCs. Students taking the class for a grade must be able to write and compile applications for the final project.
Useful Links
This list will continue to grow over time.http://developer.apple.com/iphone - The official portal for all iPhone development needs. Get Xcode and the iPhone SDK here. I highly recommend reviewing sample code and watching the tutorial videos.
http://devforums.apple.com - The official developer forums. Once you have an ADC account you can use this forum to discuss iPhone topics with other developers.
http://cocoadevcentral.com - Has some really elegant programming tutorials for Mac OS. If you already know C/C++, start out with the "Learn Objective-C" link. There's also an introduction to C ("C Tutorial for Cocoa").
http://code.google.com/p/json-framework/ - A good JSON library for iPhone/Objective-C
FMDB - A good SQLite wrapper for Objective-C; use the svn command on their website to get it
Class Schedule
Week 1; January 14 |
Class Introduction Tour of Xcode and the build environment Objective-C essentials Hello World Presentation Presentation (Black Text on White BG) |
Week 2; January 21 |
Understanding views and view controllers Getting comfortable with basic UIKit controls Presentation Presentation (Black Text on White BG) Week2_SuperSimpleApp.zip UICatalog_NoIB_v2.zip (Unzip to /Developer/Examples/iPhone) |
Week 3; January 28 |
View controller details:
Presentation Presentation (Black Text on White BG) Week3_ControllerExample.zip |
Week 4; February 4 |
Table Views Presentation Presentation (Black Text on White BG) |
Week 5; February 11 |
Retrieving information from a remote server Storing information on the phone Presentation Presentation (Black Text on White BG) Week5_ImageLibrary.zip |
Week 6; February 18 |
Quartz 2D Animation Tracking Touches Class project discussion Presentation Presentation (Black Text on White BG) Week6_QuartzAnimationTouches.zip Class Project Xcode Files |
Week 7; February 25 |
Introduction to advanced SDKs:
Presentation Presentation (Black Text on White BG) Week7_CameraLocationAccel.zip |
Week 8; March 11 |
Introduction to advanced SDKs:
Presentation Presentation (Black Text on White BG) Week8_AudioVideo.zip |
Week 9; March 18 |
Discussion of issues raised in project work SQLite demo: todo.zip Week9_Miscellaneous.zip |
Week 10; March 25 Location TBD |
Project presentations Wrap up CS47Project.zip |