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

Post on 20-Jun-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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– todd@wustl.edu– 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– michael.ginn@wustl.edu

• 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

top related