Slide 1

Slide 1 text

A swift intro to iOS @kimberlypilbeam

Slide 2

Slide 2 text

@kimberlypilbeam

Slide 3

Slide 3 text

Why

Slide 4

Slide 4 text

Why Develop

Slide 5

Slide 5 text

Why Develop

Slide 6

Slide 6 text

Why iOS

Slide 7

Slide 7 text

Why iOS Swift Xcode Quality Updated “Wow” Quick Dev

Slide 8

Slide 8 text

Why iOS iOS macOS watchOS tvOS

Slide 9

Slide 9 text

Xcode

Slide 10

Slide 10 text

Xcode

Slide 11

Slide 11 text

Xcode Start a new project

Slide 12

Slide 12 text

Xcode Start a new project Create some views

Slide 13

Slide 13 text

Xcode Start a new project Create some views Make some magic

Slide 14

Slide 14 text

Xcode File Tree

Slide 15

Slide 15 text

Xcode File Tree Code

Slide 16

Slide 16 text

Xcode File Tree Code Debug

Slide 17

Slide 17 text

Xcode File Tree Code Debug Properties/ Tools

Slide 18

Slide 18 text

Swift

Slide 19

Slide 19 text

let learning = true

Slide 20

Slide 20 text

Swift Is Fast

Slide 21

Slide 21 text

2.6x Obj-C | 8.4x Python Swift Is Fast

Slide 22

Slide 22 text

Simple Swift Is

Slide 23

Slide 23 text

Powerful Swift Is

Slide 24

Slide 24 text

Clean Swift Is

Slide 25

Slide 25 text

NO SEMICOLONS

Slide 26

Slide 26 text

Common Types String “hello” Int 0 Dictionary [String: AnyObject] Bool true Array AnyObject[1, 2, 3]

Slide 27

Slide 27 text

Common Types String - “hello” Int - 0 Dictionary - [String: AnyObject] Bool - true Array - [1, 2, 3] AnyObject

Slide 28

Slide 28 text

var thisConf = “awesome” variables let attendees = 300

Slide 29

Slide 29 text

variables?!?!?!? var speakerName: String? Notes: ? = can be nil ! = cannot be nil

Slide 30

Slide 30 text

Functions func getSpeakerName() -> String { //code return “Kim” }

Slide 31

Slide 31 text

Functions func getSpeakerName() -> String { //code return “Kim” } Name Return Type

Slide 32

Slide 32 text

Functions func setSpeakerName(name: String) { self.speakerName = name }

Slide 33

Slide 33 text

Functions func setSpeakerName(name: String) { self.speakerName = name } Param Name

Slide 34

Slide 34 text

Classes class Session { var speakerName: String? var sessionTitle: String? let duration = 60 … func init(title: String, name: String) {…} }

Slide 35

Slide 35 text

Initialization class AgendaViewController: UIViewController { override func viewDidLoad() { … var talk = Session() talk.init(“Swift”, name: “Kim”) … } }

Slide 36

Slide 36 text

iOS

Slide 37

Slide 37 text

1000 ft view

Slide 38

Slide 38 text

.swift (M) NSObject - defines objects (C) UIViewController - updates view, captures user interactions (V) UIView - displays stuff

Slide 39

Slide 39 text

.storyboard

Slide 40

Slide 40 text

.storyboard Views & Segues

Slide 41

Slide 41 text

.storyboard Views & Segues

Slide 42

Slide 42 text

.storyboard Views & Segues Main View Detail View Segue

Slide 43

Slide 43 text

.storyboard UIKIT

Slide 44

Slide 44 text

.storyboard UIKIT UIButton

Slide 45

Slide 45 text

.storyboard UIKIT UIButton UIImage

Slide 46

Slide 46 text

.storyboard UIKIT UIButton UIImage UILabel

Slide 47

Slide 47 text

.storyboard UIKIT UIButton UIImage UILabel UIViews

Slide 48

Slide 48 text

UIKIT UIViews .storyboard UIButton UIImage UILabel UITableViews UITextViews [& More] [& More]

Slide 49

Slide 49 text

.Plist Property list of general app information

Slide 50

Slide 50 text

.Plist Property list of general app information (glamorized XML File)

Slide 51

Slide 51 text

Assets.xcassets

Slide 52

Slide 52 text

Assets.xcassets icon.png 1x 100 x 100 [email protected] 200 x 200 [email protected] 300 x 300 2x 3x

Slide 53

Slide 53 text

Developer Portal

Slide 54

Slide 54 text

Developer Portal developer.apple.com

Slide 55

Slide 55 text

Sign UP Account → Apple ID “Join the Apple Developer Program”

Slide 56

Slide 56 text

Sign UP $99 / year $25 one time (Android)

Slide 57

Slide 57 text

Certificates & Profiles iTunes Connect &&

Slide 58

Slide 58 text

Certificates & Profiles name & unique identifier for your application AKA bundle ID com.company.name App Id

Slide 59

Slide 59 text

Certificates & Profiles Development devices used for testing. Find the UUID by connecting to iTunes. Devices

Slide 60

Slide 60 text

Certificates & Profiles Generated key allowing you to test & publish - Development - Production Certificates

Slide 61

Slide 61 text

Certificates & Profiles Generated digital print authorizing devices - Development - Production Provisioning Profiles

Slide 62

Slide 62 text

Deploy to i[device] Development Certificate Development Provisioning Profile Download Double Click Each

Slide 63

Slide 63 text

[Time to code]

Slide 64

Slide 64 text

THANK YOU! @kimberlypilbeam karnett/CWIT