Welcome to CSE 438S Mobile Application Development iPhone...
Transcript of Welcome to CSE 438S Mobile Application Development iPhone...
![Page 1: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/1.jpg)
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
![Page 2: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/2.jpg)
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
![Page 3: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/3.jpg)
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
![Page 4: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/4.jpg)
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
![Page 5: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/5.jpg)
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
![Page 6: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/6.jpg)
Extensible Networking Platform 1111 - CSE 438 – Mobile Application Development
iPhone OS Overview
11
Extensible Networking Platform 1212 - CSE 438 – Mobile Application Development
iPhone
12
![Page 7: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/7.jpg)
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
![Page 8: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/8.jpg)
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
![Page 9: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/9.jpg)
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
![Page 10: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/10.jpg)
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
![Page 11: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/11.jpg)
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
![Page 12: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/12.jpg)
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
![Page 13: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/13.jpg)
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
![Page 14: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/14.jpg)
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
![Page 15: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/15.jpg)
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
![Page 16: Welcome to CSE 438S Mobile Application Development iPhone ...todd/cse438/cse438_lecture1_6-9-20.pdf · 7Extensible Networking Platform-CSE 438 –Mobile Application Development 7](https://reader033.fdocuments.us/reader033/viewer/2022060306/5f0982007e708231d4272854/html5/thumbnails/16.jpg)
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