mobile application development in iosholder/courses/mad/slides/01-introduction.pdf · mobile...

23
Mobile Application Development in iOS School of EECS Washington State University Instructor: Larry Holder Mobile Application Development in iOS 1

Upload: others

Post on 13-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Mobile Application Development in iOS

School of EECS

Washington State University

Instructor: Larry Holder

Mobile Application Development in iOS 1

Page 2: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Course Overview

• Overview of iOS

• Language: Swift

• Development environment: Xcode

• Lifecycle: Design, implement, test, deploy

• Model-View-Controller (MVC) paradigm

Mobile Application Development in iOS 2

UpdateUpdate

User Action

Not

ify

Model View

Controller

Page 3: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Course Topics

• Swift

• Storyboarding and UI design

• Navigation and segues

• Tables

• Settings

• Alerts and notifications

• Gestures

Mobile Application Development in iOS 3

Page 4: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Course Topics (cont.)

• Sensors

• Communications

• Data storage

• Graphics and animation

• Multimedia

• Apple Watch

Mobile Application Development in iOS 4

Page 5: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Course Outcomes

• Proficient with iOS development environment

• Design, implement, test and deploy iOS app

• Able to use various iOS frameworks and kits

Mobile Application Development in iOS 5

Page 6: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Course Details

• Course website

– www.eecs.wsu.edu/~holder/courses/MAD/

• Prerequisites

– Advanced Data Structures

– Object-oriented design

• Grading (curved)

– 12 homeworks (80%)

– 1 final project (20%)

– Submissions via Blackboard Learn (learn.wsu.edu)

Mobile Application Development in iOS 6

Page 7: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Mobile App Development: Platforms

• iOS (Swift)

• Android (Java)

• Windows (C#)

– Xamarin (C# à iOS/Android/Windows)

Mobile Application Development in iOS 7

Page 8: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

iOS Devices

Mobile Application Development in iOS 8

iPhoneiPad Apple Watch

Page 9: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Overview of iOS: LayersiOS Layers • Cocoa Touch Layer: Frameworks that

define appearance of app (e.g.,

GameKit, MapKit, UIKit)

• Media Layer: Graphics, Audio and Video technologies (e.g., CoreAudioKit, GLKit,

SpriteKit, SceneKit)

• Core Services Layer: Services and basic

types (e.g., Network, CoreData, CoreLocation, CoreMotion, CloudKit,

HealthKit, HomeKit, StoreKit, WebKit)

• Core OS Layer: Low-level services (e.g.,

file I/O, networking, security)

Mobile Application Development in iOS 9

Page 10: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Overview of iOS: Frameworks• ARKit

• CloudKit

• HealthKit

• HomeKit

• GameKit

• MapKit

• SceneKit

• MusicKit

• WebKit

• UIKit

• CoreData

• CoreLocation

• CoreMotion

• CoreML

• WatchOS/WatchKit

• Over 50 more...

Mobile Application Development in iOS 10

Page 11: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Development Environment:Xcode

Mobile Application Development in iOS 11

Xcode

Page 12: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

First AppMobile Application Development in iOS

School of EECS

Washington State University

Instructor: Larry Holder

Mobile Application Development in iOS 12

Page 13: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Outline

• Xcode 11 projects

• Anatomy of an iOS app

– iOS 13 (iPhone 6s or higher)

• Storyboarding

• Object attributes

• Auto-layout constraintsMobile Application Development in iOS 13

Page 14: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Xcode Projects

• File à New à Project

Mobile Application Development in iOS 14

Page 15: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Xcode

Mobile Application Development in iOS 15

Page 16: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Anatomy of an iOS App• AppDelegate

– Entry point

• SceneDelegate

– Lifecycle management

• ViewController– Controls a view

• Launch & Main storyboards

• Assets.xcassets– Icons, images, videos

• Info.plist– App properties

Mobile Application Development in iOS 16

Page 17: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

App Lifecycle

Mobile Application Development in iOS 17

Page 18: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Storyboard

Mobile Application Development in iOS 18

Page 19: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Storyboard: Adding Elements to View

Mobile Application Development in iOS 19

1. Drag element into view.

Page 20: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Storyboard: Adding Elements to View

Mobile Application Development in iOS 20

2. Add layout contraints.

Page 21: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Storyboard: Adding Elements to View

Mobile Application Development in iOS 21

• Create IBOutlet to get/set properties of element

• Create IBAction to detect interaction with element

3. Connect element to view controller.

Ctrl-Click

Split Editor

Page 22: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Storyboard: Adding Elements to View

Mobile Application Development in iOS 22

Page 23: Mobile Application Development in iOSholder/courses/MAD/slides/01-Introduction.pdf · Mobile Application Development in iOS School of EECS Washington State University Instructor:

Resources

• developer.apple.com

• swift.org

• www.raywenderlich.com

• stackoverflow.com

Mobile Application Development in iOS 23