Sample projects from Lecture 18 have been added below, and in the Downloads section.
Final Project Presentations
- Download this lecture from iTunes UCongratulations to all the students who came and showed off their final projects. From utilities to games to traveling rocks and Chia Pet-task managers hybrids, we saw it all! Be sure to check out the final project presentations on iTunes U
Lecture 18
- Download this lecture from iTunes UWrapping up our second quarter of CS 193P, Evan covered unit testing, how to have some fun (and either impress your friends or crash your app) with Objective-C, localization and some common questions that we've been asked.
One note about the class website. The content will remain available for most of the summer, but towards the end of the summer it will be taken down and the materials will no longer be available. It would be a good idea to download all the materials you need now so that when the website is cleaned you're not left missing stuff. Once it's gone, it's gone.
We are expecting to run the class again in the Fall quarter, keep an eye here for more details as that time draws near. At the moment we don't know if it will be available on iTunes U or SCPD again, we'll post more over the summer.
We hope you all have had a good time in this class and that you'll continue on the path of building some amazing iPhone applications. We really enjoyed the quarter! Take care and stay in touch.
Lecture 17
- Download this lecture from iTunes UGe Wang, co-founder of Smule and developer of Ocarina and Leaf Trombone, spoke at length today on metaphors for the iPhone and creating expressive social mediums for the phone. If you're looking for inspriation for your own apps, you should definitely check out this lecture.
Final Project Submissions and Presentation Details
Final projects are due on Sunday June 7 by 11:59 PM. Late days may NOT be used for the final project.
Details for the final project presentations have been sent via email to the students enrolled in the class. If you have any questions, please drop us a line.
Lecture 16
- Download this lecture from iTunes UOur lecture today covered audio, video and web APIs available on the iPhone. We also touched on settings bundles and some additional view transitions.
Friday Section - OpenGL
- Download this lecture from iTunes UTim Omernick from ngmoco:) visited and talked about developing games with OpenGL ES on the iPhone.
Lecture 15
- Download this lecture from iTunes UToday we covered the various device APIs including location services, accelerometer and camera functionality, and we also covered battery life and power management.
Lecture 14
- Download this lecture from iTunes USteve Demeter from Demiforce and Josh Shaffer from Apple came in to class to talk about multi-touch and touch events.
Misc Demo Projects
A number of sample projects from Lectures 12 and 13 are now available.
Lecture 13
- Download this lecture from iTunes ULooking for something? In today's lecture you'll find information about adding search UI to your application. We also explored notifications which allow for loosely coupled communications between objects. Key-Value Coding and Observing was also covered, along with some debugging tips when dealing with exceptions.
Lecture 12
- Download this lecture from iTunes UAlex Aybes visited lecture today to discuss Address Book APIs for the iPhone. The last of the Presence assignments, Presence 4, is available for download (the additional files will be posted in a few hours).
Lecture 11
- Download this lecture from iTunes UToday's lecture covered text input, keyboards and presenting content modally.
Lecture 10
- Download this lecture from iTunes UToday we talked about performance in your iPhone apps. We looked at memory usage, leaks, Instruments and then various topics about concurrency. The Presence 3 is now available.
Final Project Proposals
As mentioned in the lecture on Weds, it's time to prepare your final project proposal. Please read the description of what we'd like to see in the PDF file below, and email your proposals to cs193p@cs.stanford.edu.
Lecture 9
- Download this lecture from iTunes UWe're halfway done! Today's lecture was all about handling of data in your iPhone apps. Different solutions for how to manage and store your application's data were explored, including accessing data via WebServices and JSON which is required for the Presence 2 assignment.
Lecture 8
- Download this lecture from iTunes UJason Beaver was our guest lecturer today discussing scroll views and table views. Thanks Jason!
The second Presence assignment is available for download, please let us know if you have any questions. Don't forget to download the Presence2Files.zip which contains the JSON helper files you'll need to add to your project for this assignment.
Follow-Up Notes - Lectures 6-7
Covered this week: memory management and IB, best practices for saving and loading data using NSDefaults, and MVC revisted in gory detail
RSS feed is back
We've finally gotten around to getting the RSS feed hooked back up. You can access it in the top right corner of this page or by clicking here
Friday Section - Publishing to the App Store
Want to know how to get your app on the app store? Paul Marcos, lecturer emeritus for CS193P, covered two main topics in today's bonus section: 1) the mechanics of getting your app in the storeĀ and 2) "best practices" from the app store team on how to make your app more successful.
Lecture 7
- Download this lecture from iTunes UOur introduction to view controllers continued today with a discussion about some special view controllers available in the iPhone SDKs. Navigation controllers and tab bar controllers provide two common ways of managing your view controllers in order to present screenfuls of content to the user. We looked at how to have data flow between view controllers and how view controllers can be combined to build up modular interfaces.
Lecture 6
- Download this lecture from iTunes UWelcome to the world of View Controllers! Central to virtually every iPhone application developed, View Controllers help keep your Model-View-Controller app well organized and functioning smoothly. Evan covered the basics of View Controllers and introduced the Presence application that we will begin working on this week. The assignment can be downloaded below.
Follow-Up Notes - Lectures 2-3 and 4-5
We'll be releasing weekly notes that address in-class student questions and common issues people are having on the assignments. The notes from last week and this week are now available.
Lecture 5
- Download this lecture from iTunes UToday we covered views in iPhone applications including creating custom views, geometry, drawing things on screen, images and basics of animation. A simple sample project is available for download.
Auditors Mailing List
As announced in lecture 4 we've set up a mailing list for auditors of this class. If you are interested in joining the list, please go to https://mailman.stanford.edu/mailman/listinfo/cs193p-auditors to sign up.
Lecture 4
- Download this lecture from iTunes UMonday's lecture covered the anatomy of an iPhone application, Model, View, Controller (which is central to all iPhone applications), Interface Builder nib files and an introduction to controls and the target-action design.
Assignment 3, due Tuesday April 21, is now available for download. This is the second part of the Hello Poly application.
Friday Section - Intro to XCode and Debugging
Join us today at 3:15-4:05 in 200-205 for a bonus lecture. It's going to be an interactive section where you can follow along on your laptop! Unfortunately this section will not be available on iTunes, although we will be posting materials afterwards.
Lecture 3
- Download this lecture from iTunes UContinuing on our exploration of Objective-C, today we covered a lot of material. We looked at writing custom classes, object lifecycle, autorelease and Objective-C properties.
Lecture 2
- Download this lecture from iTunes UToday's lecture introduced Objective-C and Foundation framework APIs. Office hours have been posted on the Staff page, and are included in the lecture slides.
This week's assignment is also available for download. The second assignment is made up of two parts. The first part continues from Assignment1A by adding custom class creation to our WhatATool project. The second part begins a small two-part application that will go into a bit more detail of Interface Builder. Assignment2B also includes a fairly extensive walkthrough document.
Enrollment Update
The enrollment process has been completed and students who have been admitted into the class have been sent an email (to your official Axess email address). If you weren't enrolled in the class you should have also received an email letting you know. Unfortunately some students weren't in Axess and didn't include their SUNet ID in the survey so we didn't have an email address for you. If you're unsure of your status, please don't hesitate to drop us a line.
Lecture 1
- Download this lecture from iTunes UThanks for coming by to check out the first lecture of the Spring 2009 193P class! Lecture slides and handouts will be slightly delayed, they should be posted this evening. Sorry for the delay.
In the meantime, if you haven't already done so, please complete the enrollment survey. Surveys MUST be completed by noon April 2.
CS 193P on iTunes U!
We're thrilled to announce that the Spring 2009 quarter of CS 193P will be available for free via iTunes U! Check out the announcement and lectures should start appearing at Stanford on iTunes U in a couple days.
Enrollment Survey Available
As mentioned below in the FAQs, enrollment in 193P is going to be limited this quarter. Please complete the survey. Complete the Enrollment Survey. You can sign up in Axess now if you like, but this does not guarantee you a slot in the class. You must still complete the enrollment survey. We will notify students whether they have been admitted to the class or not by the end of the first week of classes. If you are not admitted you will need to drop the class in Axess.
If you do not get admitted you are welcome to audit the class. Loaner devices are not available for auditors.
Getting Ready for Spring Quarter
CS193P will be back in Spring quarter! We will be updating this website shortly with more details, but some of the frequent questions can be seen below. If you have any questions please don't hesitate to drop us a line.
FAQs
- Q: Do I need to have a Mac to take this class?
- A: Yes. You will need to have an Intel-based Macintosh in order to take this class. You will need to install the iPhone SDK so this needs to be a Mac that you have administrative privileges to.
- Q: Do I need to have an iPhone to take this class?
- A: Not strictly. If you have an iPhone or iPod touch you can use that for the class. Loaner iPod touches should be available as well. The vast majority of the work we will do can be done using the iPhone simulator (included in the iPhone SDK). There are some pieces of functionality that we will cover that only work on an iPhone or iPod touch, but those will be optional.
- Q: Is this class being offered online?
- A: The class will not be offered through SCPD this quarter but it will be available on iTunes U.
- Q: What are the prerequisites?
- A: We list CS106B or CS106X as the prerequisite. While we don't strictly enforce this requirement we do strongly recommend that students are comfortable with programming in C, especially with regard to using pointers and general C memory management (malloc/free). Familiarity with object oriented designs and principles are definitely helpful but tend to pose less of a stumbling block than wrangling with pointers in C.
- Q: Are there midterms/finals?
- A: No. We have weekly assignments with a final project (of your choice), but there will not be a midterm or final exam.
- Q: If I enroll for the class, am I guaranteed a spot?
- A: Unfortunately, not necessarily. We are expecting to have to limit enrollment this quarter and will probably have students fill out a survey at the beginning of the class.
- Q: Will the class be using the recently announced iPhone 3.0 version?
- A: No. The class will base everything on the currently available iPhone 2.X OS.
- Q: What happened to the class materials? Can I still download the lecture slides from Fall quarter?
- A: We've reset the class website in preparation for the Spring quarter which begins March 31. The materials for the new quarter will be available starting then.