welcome to cse 438s mobile application development iphone...

16
1 - CSE 438 – Mobile Application Development Welcome to CSE 438S Mobile Application Development iPhone Class1 2 - 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

Upload: others

Post on 20-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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