• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
01 Introduction
 

01 Introduction

on

  • 1,457 views

01 Introduction in i phone proraming

01 Introduction in i phone proraming

Statistics

Views

Total Views
1,457
Views on SlideShare
1,450
Embed Views
7

Actions

Likes
0
Downloads
21
Comments
0

1 Embed 7

http://www.slideshare.net 7

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    01 Introduction 01 Introduction Presentation Transcript

    • Welcome to CS193P iPhone Application Development Alan Cannistraro accannis@stanford.edu Josh Shaffer joshh@stanford.edu Tuesday, January 5, 2010 1
    • Introductions • Lecturers ■ Alan Cannistraro <accannis@stanford.edu> ■ Josh Shaffer <joshh@stanford.edu> • Student TAs ■ Paul Salzman <paulsalz@stanford.edu> ■ David Jacobs <dejacobs@stanford.edu> • Grand-Master Chief ■ Paul Marcos <pmarcos@apple.com> Tuesday, January 5, 2010 2
    • Quick Survey Tuesday, January 5, 2010 3
    • Quick Survey • Have worked with Object Oriented Programming?? Tuesday, January 5, 2010 3
    • Quick Survey • Have worked with Object Oriented Programming?? • Have developed apps for Mac OS X? Tuesday, January 5, 2010 3
    • Quick Survey • Have worked with Object Oriented Programming?? • Have developed apps for Mac OS X? • Have installed the iPhone SDK and done iPhone development? Tuesday, January 5, 2010 3
    • 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? Tuesday, January 5, 2010 3
    • Logistics Tuesday, January 5, 2010 4
    • Logistics • Lectures: ■ Education 128 ■ Tuesday & Thursday 4:15 - 5:30 PM Tuesday, January 5, 2010 4
    • Logistics • Lectures: ■ Education 128 ■ Tuesday & Thursday 4:15 - 5:30 PM • Optional Section ■ Room & Time - TBD ■ Guest speakers & hot topics Tuesday, January 5, 2010 4
    • 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 Tuesday, January 5, 2010 4
    • Requirements • Prerequisite: CS 106B/X • Recommended Book: None! We’ll use Apple documentation • Required Hardware & Software: ■ Intel-based Macintosh, running Mac OS X 10.5 Leopard ■ iPhone SDK (not currently available on cluster computers) • iPhone or iPod touch is not required ■ Assignments may be completed using the iPhone Simulator ■ Loaner iPod touches will be available Tuesday, January 5, 2010 5
    • Enrollment Tuesday, January 5, 2010 6
    • Enrollment • Response has been phenomenal (again)! ■ Enrollment limited to 60 students ■ 40 Graded, 20 Pass/No Credit Tuesday, January 5, 2010 6
    • Enrollment • Response has been phenomenal (again)! ■ Enrollment limited to 60 students ■ 40 Graded, 20 Pass/No Credit Tuesday, January 5, 2010 6
    • Enrollment • Response has been phenomenal (again)! ■ Enrollment limited to 60 students ■ 40 Graded, 20 Pass/No Credit • You MUST fill out a survey to be considered ■ http://tinyurl.com/cs193p-2010 ■ Need to be completed by noon tomorrow (1/6) Tuesday, January 5, 2010 6
    • Enrollment • Response has been phenomenal (again)! ■ Enrollment limited to 60 students ■ 40 Graded, 20 Pass/No Credit • You MUST fill out a survey to be considered ■ http://tinyurl.com/cs193p-2010 ■ Need to be completed by noon tomorrow (1/6) Tuesday, January 5, 2010 6
    • Enrollment • Response has been phenomenal (again)! ■ Enrollment limited to 60 students ■ 40 Graded, 20 Pass/No Credit • You MUST fill out a survey to be considered ■ http://tinyurl.com/cs193p-2010 ■ Need to be completed by noon tomorrow (1/6) • Enrollment will be determined based on prior CS courses, other relevant experience, number of quarters remaining, major Tuesday, January 5, 2010 6
    • Enrollment • Response has been phenomenal (again)! ■ Enrollment limited to 60 students ■ 40 Graded, 20 Pass/No Credit • You MUST fill out a survey to be considered ■ http://tinyurl.com/cs193p-2010 ■ Need to be completed by noon tomorrow (1/6) • Enrollment will be determined based on prior CS courses, other relevant experience, number of quarters remaining, major Tuesday, January 5, 2010 6
    • Enrollment • Response has been phenomenal (again)! ■ Enrollment limited to 60 students ■ 40 Graded, 20 Pass/No Credit • You MUST fill out a survey to be considered ■ http://tinyurl.com/cs193p-2010 ■ Need to be completed by noon tomorrow (1/6) • Enrollment will be determined based on prior CS courses, other relevant experience, number of quarters remaining, major • Auditors welcome! Tuesday, January 5, 2010 6
    • iPhone Developer University Program • Stanford is part of the iPhone Developer University Program ■ Do not sign up for this! • Free on-device development for students (save $99!) ■ Valid through the end of the quarter ■ Invites will be issued to your @stanford.edu email address ■ Read through a Student Agreement to get started Tuesday, January 5, 2010 7
    • Available on iTunes U Tuesday, January 5, 2010 8
    • 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 Tuesday, January 5, 2010 9
    • CS193P on iTunes U For viewers on iTunes U: ■ Welcome to Stanford! ■ Feedback and suggestions are welcome ■ We can’t answer individual questions via email ■ Download materials now, if you want them later! Tuesday, January 5, 2010 10
    • Communication and Materials • Email ■ cs193p@cs.stanford.edu ■ Questions from enrolled students only, please! • Course web site ■ http://cs193p.stanford.edu • Other web sites ■ Apple Dev Center: http://developer.apple.com ■ Developer Forums: http://devforums.apple.com ■ External resources: ■ http://cs193p.com ■ http://groups.google.com/group/iphone-appdev-auditors/ Tuesday, January 5, 2010 11
    • Communication and Materials • Auditors ■ cs193p-auditors@lists.stanford.edu ■ Self-add email list ■ Low volume, but allows us to communicate with all folks following along ■ To sign up, go to: ■ http://lists.stanford.edu ■ https://mailman.stanford.edu/mailman/listinfo/cs193p-auditors Tuesday, January 5, 2010 12
    • Why Are We Here? To build iPhone & iPod touch applications using Cocoa Touch Tuesday, January 5, 2010 13
    • Why Are We Here? • CS193P is not just about the iPhone, Cocoa Touch or ObjC • It’s about Software Engineering, as well as object oriented architecture and design • Exposure to problems and solutions that you might not see in other classes Tuesday, January 5, 2010 14
    • Cocoa Touch & iPhone SDK Tuesday, January 5, 2010 15
    • Cocoa Touch & iPhone SDK • Based on Cocoa ■ Mature, polished, highly consistent APIs • 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 Tuesday, January 5, 2010 15
    • Things We’ll Cover Tuesday, January 5, 2010 16
    • Tools Frameworks Language (& Runtime) Tuesday, January 5, 2010 17
    • Tools Xcode Interface Builder Frameworks Language (& Runtime) Tuesday, January 5, 2010 17
    • Tools Xcode Interface Builder Frameworks Foundation UIKit Language (& Runtime) Tuesday, January 5, 2010 17
    • Tools Xcode Interface Builder Frameworks Foundation UIKit Language [textView setStringValue: @“Hello”]; (& Runtime) Objective-C Tuesday, January 5, 2010 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 • A data point to compare with designs of C, C++ and Java Tuesday, January 5, 2010 18
    • Assignments, Grading & Late Policy • 7 weekly assignments • Final project of your choice ■ End of quarter demos at Apple... • Grading: Nice & simple: ✓, ✓+ and ✓- • Late Policy: 3 late days, use them wisely! Tuesday, January 5, 2010 19
    • Applications You Will Build HelloStanford & Obj-C Tool HelloPoly - 2 weeks Paparazzi - 4 weeks Final Project (your choice) - 3 weeks Tuesday, January 5, 2010 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) Tuesday, January 5, 2010 21
    • Paparazzi • Build a fully functional application from scratch over 4 weeks • Access photos on • Each assignment builds on the previous one ■ Don’t fall behind! • Covers a wide variety of topics in the UIKit framework... Tuesday, January 5, 2010 22
    • What We’ll Cover • Application design patterns • View controllers • Presenting data ■ Table views • Loading & saving data ■ Property lists, Core Data, web services • Text input • Threading and Performance • Address Book and other system integration • iPhone SDK 3.0 stuff! ■ MapKit, Video & Photo APIs, & more Tuesday, January 5, 2010 23
    • Final Projects • 3 weeks to work on them • By yourself or with a partner • It’s 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 • Find a project that you or your friends would actually like to use! • Post it on the app store? • http://www.stanfordiphoneclassapps.com Tuesday, January 5, 2010 24
    • Questions? Tuesday, January 5, 2010 25
    • iPhone OS Overview Tuesday, January 5, 2010 26
    • iPhone Tuesday, January 5, 2010 27
    • Mac OS X Tuesday, January 5, 2010 27
    • Mac OS X Cocoa Media Core Services Core OS Tuesday, January 5, 2010 27
    • Cocoa Media Core Services Core OS Tuesday, January 5, 2010 27
    • Cocoa Touch Media Core Services Core OS Tuesday, January 5, 2010 27
    • iPhone OS Cocoa Touch Media Core Services Core OS Tuesday, January 5, 2010 27
    • iPhone OS Cocoa Touch Media Core Services Core OS Tuesday, January 5, 2010 28
    • iPhone OS Core OS Cocoa Touch OS X Kernel Power Mgmt Mach 3.0 Keychain Media BSD Certificates Core Services Sockets File System Core OS Security Bonjour Tuesday, January 5, 2010 28
    • iPhone OS Core Services Cocoa Touch Collections Core Location Address Book Net Services Media Networking Threading Core Services File Access Preferences Core OS SQLite URL utilities Tuesday, January 5, 2010 28
    • iPhone OS Media Cocoa Touch Core Audio JPG, PNG, TIFF OpenAL PDF Media Audio Mixing Quartz (2D) Core Services Audio Recording Core Animation Core OS Video Playback OpenGL ES Tuesday, January 5, 2010 28
    • iPhone OS Cocoa Touch Cocoa Touch Multi-Touch Events Alerts Multi-Touch Controls Web View Media Accelerometer People Picker Core Services View Hierarchy Image Picker Core OS Localization Camera Tuesday, January 5, 2010 28
    • iPhone OS Cocoa Touch Media Core Services Core OS Tuesday, January 5, 2010 28
    • Tools Xcode Interface Builder Frameworks Foundation UIKit Language [textView setStringValue: @“Hello”]; (& Runtime) Objective-C Tuesday, January 5, 2010 29
    • Cocoa Touch Architecture Cocoa Touch UIKit User interface elements Application runtime Event handling Hardware APIs Foundation Utility classes Collection classes Object wrappers for system services Subset of Foundation in Cocoa Tuesday, January 5, 2010 30
    • Objects Tuesday, January 5, 2010 31
    • Object Thing Tuesday, January 5, 2010 32
    • Behavior Thing behavior doSomething Tuesday, January 5, 2010 33
    • Message Thing "doSomething" doSomething Tuesday, January 5, 2010 34
    • State Thing flag state count behavior doSomething Tuesday, January 5, 2010 35
    • Other Objects As State Thing flag state count behavior doSomething Tuesday, January 5, 2010 36
    • Other Objects As State Thing flag state count behavior doSomething doSomethingElse Tuesday, January 5, 2010 36
    • Other Objects As State Thing flag state count helper behavior doSomething doSomethingElse Tuesday, January 5, 2010 36
    • Other Objects As State Other Thing Thing flag performDifficultTask state count helper behavior doSomething doSomethingElse Tuesday, January 5, 2010 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 Tuesday, January 5, 2010 37
    • Target / Action Controller target slider action ʻupdateLabelʼ label updateLabel Tuesday, January 5, 2010 38
    • Demo Tuesday, January 5, 2010 39
    • Outlets Controller slider label updateLabel Tuesday, January 5, 2010 40
    • Target / Action Controller target slider action ʻupdateLabelʼ label updateLabel Tuesday, January 5, 2010 41
    • Questions? Tuesday, January 5, 2010 42