代写 C socket swift software network security OpenGL Welcome to CSE 438S Mobile Application Development

Welcome to CSE 438S Mobile Application Development
􏰀iPhone Class􏰁
1E- CxtSeEn4s3i8bl–eMNobeitlewAoprpkliincgatiPonlaDtefovermlopment 1
Course Information
• Instructor
– Todd Sproull
– todd@wustl.edu
– Jolley 536
– Office Hours by Appointment
• Classrooms
– Steinberg 105
– Whitaker 316 (Mac Lab)
• Time
– Mondays and Wednesdays 11:30 AM – 1 PM
• CourseWebsite
– http://research.engineering.wustl.edu/~todd/cse438/ – Also available on Canvas
• Head TA
– Jordie Chisam
– jachisam@wustl.edu
• We will use Piazza to answer questions
– Please sign up, I emailed everyone an invite
2E- CxtSeEn4s3i8bl–eMNobeitlewAoprpkliincgatiPonlaDtefovermlopment 2

Requirements
• CSE247
• Access to an Intel-based Macintosh – Running macOS 10.14 or later
– iPhone SDK Xcode 10.2.1 and iOS 12
• We will use Xcode 10.2.1 the entire semester, I strongly recommend not upgrading to a newer version of the software
• Textbook
– None, we will use lecture slides and the developer.apple.com
website
• OwninganiPhoneoriPodTouchnotrequired
– We will use the simulator throughout the semester – Final projects may target an iPhone or iPod Touch
3E- CxtSeEn4s3i8bl–eMNobeitlewAoprpkliincgatiPonlaDtefovermlopment 3
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
4E- CxtSeEn4s3i8bl–eMNobeitlewAoprpkliincgatiPonlaDtefovermlopment 4

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
• YouarefreetobecomeanAppleDeveloper($99/yr)and sell anything you create in this class
– Or implement another student􏰀s great idea and sell it
5E- CxtSeEn4s3i8bl–eMNobeitlewAoprpkliincgatiPonlaDtefovermlopment 5
What is this class all about?
• Building applications on iOS Devices
– iPhone, iPad, iPod Touch, Apple Watch, Apple TV
• Learn new programming languages – Swift
– Objective-C
6E- CxtSeEn4s3i8bl–eMNobeitlewAoprpkliincgatiPonlaDtefovermlopment 6

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
7E- CxtSeEn4s3i8bl–eMNobeitlewAoprpkliincgatiPonlaDtefovermlopment 7
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
8E- CxtSeEn4s3i8bl–eMNobeitlewAoprpkliincgatiPonlaDtefovermlopment 8

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
9E- CxtSeEn4s3i8bl–eMNobeitlewAoprpkliincgatiPonlaDtefovermlopment 9
Questions?
10E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 10

iPhone OS Overview
11E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinlicgatPiolnatDfoevrmelopment 11
iPhone
12E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 12

Mac OS X
13E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 13
Mac OS X
14E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 14

iPhone / iPad
15E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 15
• Core OS
– OS X Kernel – BSD
– Sockets
– Security
– Power Mgmt – Keychain
– File System
16E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 16

• Core Services – Collections – Networking – SQLite
– Net Services – Threading
– Preferences
17E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 17
• Media
– Core Audio
– Audio Mixing
– Audio Recording – Video Playback – JPG, PNG, TIFF
– PDF
– Quartz (2D)
– Core Animation – OpenGL ES
18E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 18

• Cocoa Touch
– Multi-Touch Events
– Multi-Touch Controls – Accelerometer
– Localization
– Alerts
– Web Views
19E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 19
Development
• Tools
– Xcode
• Storyboard (formerly Interface Builder)
• Frameworks – Foundations – UIKit
• Languages and Runtimes – Swift
– Objective C
20E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 20

Cocoa Touch Architecture
21E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 21
Object Oriented Programming
22E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 22

Object
Thing
23E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 23
Behavior
behavior
Thing
doSomething
24E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 24

Message
􏰀doSomething􏰁
Thing
doSomething
25E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 25
State
Thing
state
behavior doSomething
count flag
26E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 26

Other Objects as State
state behavior
Thing
doSomething
otherThing
doMore
count flag helper
27E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 27
Outlets
Controller
updateLabel
slider label
28E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 28

Target/Action
Controller
updateLabel
target
action – 􏰀updateLabel􏰁
slider label
29E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 29
Demo
30E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 30

Recap
• Keep logic separate from interface elements • Outlets connect controllers to views
• Use target/action to customize behavior
31E-xCteSnEs4i3b8le– MNoebtiwleoArpkpinligcatPiolantDfoevrmelopment 31