Welcome To Cs193P: Iphone Application Development
Welcome To Cs193P: Iphone Application Development
Introductions
Lecturers
Alan Cannistraro <[email protected]> Josh Shaffer <[email protected]>
Student TAs
Paul Salzman <[email protected]> David Jacobs <[email protected]>
Grand-Master Chief
Quick Survey
Quick Survey
Have worked with Object Oriented Programming??
Quick Survey
Have worked with Object Oriented Programming?? Have developed apps for Mac OS X?
Quick Survey
Have worked with Object Oriented Programming?? Have developed apps for Mac OS X? Have installed the iPhone SDK and done iPhone
development?
Quick Survey
Have worked with Object Oriented Programming?? Have developed apps for Mac OS X? Have installed the iPhone SDK and done iPhone
development? Have submitted apps to the App Store?
Logistics
Logistics
Lectures:
Education 128 Tuesday & Thursday 4:15 - 5:30 PM
Logistics
Lectures:
Education 128 Tuesday & Thursday 4:15 - 5:30 PM
Optional Section
Room & Time - TBD Guest speakers & hot topics
Logistics
Lectures:
Education 128 Tuesday & Thursday 4:15 - 5:30 PM
Optional Section
Room & Time - TBD Guest speakers & hot topics
Office Hours
Paul & David will hold office hours See website for details
Requirements
Prerequisite: CS 106B/X Recommended Book: None! Well use Apple documentation Required Hardware & Software:
Intel-based Macintosh, running Mac OS X 10.5 Leopard iPhone SDK (not currently available on cluster computers)
Enrollment
Enrollment
Response has been phenomenal (again)!
Enrollment limited to 60 students 40 Graded, 20 Pass/No Credit
Enrollment
Response has been phenomenal (again)!
Enrollment limited to 60 students 40 Graded, 20 Pass/No Credit
Enrollment
Response has been phenomenal (again)!
Enrollment limited to 60 students 40 Graded, 20 Pass/No Credit
Enrollment
Response has been phenomenal (again)!
Enrollment limited to 60 students 40 Graded, 20 Pass/No Credit
Enrollment
Response has been phenomenal (again)!
Enrollment limited to 60 students 40 Graded, 20 Pass/No Credit
Enrollment
Response has been phenomenal (again)!
Enrollment limited to 60 students 40 Graded, 20 Pass/No Credit
Enrollment
Response has been phenomenal (again)!
Enrollment limited to 60 students 40 Graded, 20 Pass/No Credit
Auditors welcome!
Tuesday, January 5, 2010 6
Available on iTunes U
CS193P on iTunes U
For enrolled students at Stanford
Your voice may be recorded Not a substitute for attending lectures There will be a delay of a few days before lectures and materials are available
CS193P on iTunes U
For viewers on iTunes U:
Welcome to Stanford! Feedback and suggestions are welcome We cant answer individual questions via email Download materials now, if you want them later!
10
http://cs193p.stanford.edu
http://groups.google.com/group/iphone-appdev-auditors/
11
http://lists.stanford.edu https://mailman.stanford.edu/mailman/listinfo/cs193p-auditors
12
13
14
15
Provides a very rich starting point for exploring app design Shows real-world implementations of OO design patterns Designs learned on iPhone translate directly to Mac OS X
15
16
Tools
Frameworks
17
Frameworks
17
17
Objective-C
17
Why Objective-C?
Exposure to other languages is always good ObjC is a language focused on simplicity and the elegance of
OO design
Based on ANSI C Brings many object oriented principles, but with a minimal amount of syntax
18
Grading: Nice & simple: , + and Late Policy: 3 late days, use them wisely!
19
20
First Assignment
First assignment handed out today, in two parts Intended to get you situated with tools and start off with Obj-C Includes a comprehensive walkthrough We suggest trying to do the first half before Thursday to help
work out any tools or installation issues Due on Jan 13 (next Wednesday)
21
Paparazzi
Build a fully functional application from scratch over 4 weeks Access photos on Each assignment builds on the previous one
22
Text input Threading and Performance Address Book and other system integration iPhone SDK 3.0 stuff!
23
Final Projects
3 weeks to work on them By yourself or with a partner Its never too early to think of something and propose it to us Categories to consider:
Student life apps Educational tools Games Social / location-aware software
24
Questions?
25
iPhone OS Overview
26
iPhone
27
Mac OS X
27
Mac OS X
Cocoa Media Core Services Core OS
27
27
27
iPhone OS
Cocoa Touch Media Core Services Core OS
27
iPhone OS
Cocoa Touch Media Core Services Core OS
28
iPhone OS
Cocoa Touch Media Core Services Core OS
Core OS
OS X Kernel Mach 3.0 BSD Sockets Security Power Mgmt Keychain Certificates File System Bonjour
28
iPhone OS
Cocoa Touch Media Core Services Core OS
Core Services
Collections Address Book Networking File Access SQLite Core Location Net Services Threading Preferences URL utilities
28
iPhone OS
Cocoa Touch Media Core Services Core OS
Media
Core Audio OpenAL Audio Mixing Video Playback JPG, PNG, TIFF PDF Quartz (2D) OpenGL ES
28
iPhone OS
Cocoa Touch Media Core Services Core OS
Cocoa Touch
Multi-Touch Events Accelerometer View Hierarchy Localization Alerts People Picker Image Picker Camera Multi-Touch Controls Web View
28
iPhone OS
Cocoa Touch Media Core Services Core OS
28
Objective-C
29
Foundation
Utility classes Collection classes Object wrappers for system services Subset of Foundation in Cocoa
30
Objects
31
Object
Thing
32
Behavior
Thing
behavior
doSomething
33
Message
Thing
"doSomething"
doSomething
34
State
Thing
state ag count
behavior
doSomething
35
Thing
state ag count
behavior
doSomething
36
Thing
state ag count
behavior
doSomething doSomethingElse
36
Thing
state ag count helper doSomething doSomethingElse
behavior
36
behavior
36
Outlets
Need to decide what the demo would be and update slide to appropriate material. - text field / slider? - color tabs?
Controller
slider label updateLabel
37
Target / Action
Controller
slider label updateLabel
38
Demo
39
Outlets
Controller
slider label updateLabel
40
Target / Action
Controller
slider label updateLabel
41
Questions?
42