welcome to cse 438s mobile application development iphone...
TRANSCRIPT
Extensible Networking Platform 11 - CSE 438 – Mobile Application Development
Welcome to CSE 438SMobile Application Development
“iPhone Class”
1
Extensible Networking Platform 22 - CSE 438 – Mobile Application Development
Course Information• Instructor
– Todd Sproull– [email protected]– Jolley 536– Office Hours by Appointment
• Classrooms– None…Online only this semester– I will host Zoom meeting during class time
• Time– Tuesdays and Thursdays. 3 – 5:30 PM
• Course Website– http://research.engineering.wustl.edu/~todd/cse438/– Also available on Canvas
• Head TA– Michael Ginn– [email protected]
• We will use Piazza to answer questions– Please sign up, I emailed everyone an invite
2
Extensible Networking Platform 33 - CSE 438 – Mobile Application Development
Requirements• CSE 247
• Access to an Intel-based Macintosh– Running macOS 10.15 or later– iPhone SDK Xcode 11.5 and iOS 13
• We will use Xcode 11.5 the entire semester, do not upgrade to a newer version of the software
• Textbook– None, we will use lecture slides and the developer.apple.com
website
• Owning an iPhone or iPod Touch not required– We will use the simulator throughout the semester– Final projects may target an iPhone or iPod Touch
3
Extensible Networking Platform 44 - CSE 438 – Mobile Application Development
Stanford CS193p
• This course is based on cs193p taught at Stanford by Evan Doll and Alan Cannistraro– Lectures and slides available on iTunes
• Many of the lectures and programming assignments come from this class– Initial assignments are identical– Later assignments somewhat different
• Consider taking the iTunes course if that suits your personality
4
Extensible Networking Platform 55 - CSE 438 – Mobile Application Development
Copyrights, Patents, Fair Use…• Everything discussed in this class and on the website is
completely OPEN and FREE – Do whatever you want with it
• The goal of this class is to share as much information as possible– Open discussion of topics and ideas
• If you have a great idea and do not want others to implement it and sell it DO NOT discuss it here– If you choose to discuss it, we can probably improve it
• You are free to become an Apple Developer ($99/yr) and sell anything you create in this class– Or implement another student’s great idea and sell it
5
Extensible Networking Platform 66 - CSE 438 – Mobile Application Development
What is this class all about?
• Building applications on iOSDevices – iPhone, iPad, iPod Touch, Apple
Watch, Apple TV• Learn new programming languages
– Swift– Objective-C
6
Extensible Networking Platform 77 - CSE 438 – Mobile Application Development
Cocoa Touch and iPhone SDK
• Based on Cocoa– API used to develop software on Mac
• Provides 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
7
Extensible Networking Platform 88 - CSE 438 – Mobile Application Development
Swift
• Apple’s latest programming language to develop OS X and iOS applications
• New language only a few years
• Combines many of the latest programming techniques in an easy to learn language
8
Extensible Networking Platform 99 - CSE 438 – Mobile Application Development
Grading
• 4 lab assignments during the semester– 70% of your final grade
• Final Project– Work on something that can make a difference
• Start thinking about your project today!– 30% of your final grade
9
Extensible Networking Platform 1010 - CSE 438 – Mobile Application Development
Questions?
10
Extensible Networking Platform 1111 - CSE 438 – Mobile Application Development
iPhone OS Overview
11
Extensible Networking Platform 1212 - CSE 438 – Mobile Application Development
iPhone
12
Extensible Networking Platform 1313 - CSE 438 – Mobile Application Development
Mac OS X
13
Extensible Networking Platform 1414 - CSE 438 – Mobile Application Development
Mac OS X
14
Extensible Networking Platform 1515 - CSE 438 – Mobile Application Development
iPhone / iPad
15
Extensible Networking Platform 1616 - CSE 438 – Mobile Application Development
• Core OS– OS X Kernel– BSD– Sockets– Security– Power Mgmt– Keychain– File System
16
Extensible Networking Platform 1717 - CSE 438 – Mobile Application Development
• Core Services– Collections– Networking– SQLite– Net Services– Threading– Preferences
17
Extensible Networking Platform 1818 - CSE 438 – Mobile Application Development
• Media– Core Audio– Audio Mixing– Audio Recording– Video Playback– JPG, PNG, TIFF– PDF– Quartz (2D)– Core Animation– OpenGL ES
18
Extensible Networking Platform 1919 - CSE 438 – Mobile Application Development
• Cocoa Touch– Multi-Touch Events– Multi-Touch Controls– Accelerometer– Localization– Alerts– Web Views
19
Extensible Networking Platform 2020 - CSE 438 – Mobile Application Development
Development
• Tools– Xcode
• Storyboard (formerly Interface Builder)
• Frameworks– Foundations – UIKit
• Languages and Runtimes– Swift– Objective C
20
Extensible Networking Platform 2121 - CSE 438 – Mobile Application Development
Cocoa Touch Architecture
21
Extensible Networking Platform 2222 - CSE 438 – Mobile Application Development
Object Oriented Programming
22
Extensible Networking Platform 2323 - CSE 438 – Mobile Application Development
Object
Thing
23
Extensible Networking Platform 2424 - CSE 438 – Mobile Application Development
Behavior
Thing
doSomethingbehavior
24
Extensible Networking Platform 2525 - CSE 438 – Mobile Application Development
Message
Thing
doSomething
“doSomething”
25
Extensible Networking Platform 2626 - CSE 438 – Mobile Application Development
State
countflag
Thing
doSomething
state
behavior
26
Extensible Networking Platform 2727 - CSE 438 – Mobile Application Development
Other Objects as State
countflaghelper
Thing
doSomething
state
behavior
otherThing
doMore
27
Extensible Networking Platform 2828 - CSE 438 – Mobile Application Development
Outlets
sliderlabel
Controller
updateLabel
28
Extensible Networking Platform 2929 - CSE 438 – Mobile Application Development
Target/Action
sliderlabel
Controller
updateLabel
target
action - ‘updateLabel’
29
Extensible Networking Platform 3030 - CSE 438 – Mobile Application Development
Demo
30
Extensible Networking Platform 3131 - CSE 438 – Mobile Application Development
Recap
• Keep logic separate from interface elements
• Outlets connect controllers to views
• Use target/action to customize behavior
31