Prerequisites

• Students should ideally be developers with OOP experience (Java, C++, C#)

• Ideally the group should have similar backgrounds and experience levels

• macOS experience is a plus

Duration

The course can be taught over 5 days or 10 days depending on depth, optional content and

student experience coming into the course.

Outline for iOS 13 Development with Swift 5 Training

Chapter 1. Intro

1. Swift Versions

2. swift.org

3. Xcode

Chapter 2. Structure of an App

1. iOS Templates

2. View Controllers

3. Views

4. Storyboards

5. Icons

6. Object Library

7. SwiftUI

8. App Delegate

9. Scene Delegate

Chapter 3. Lab 1: Hello World

Chapter 4. Tour of Xcode

1. Target Settings

2. Navigators

3. Editor Area

4. Inspectors

Chapter 5. Debugging

1. Breakpoints

2. Debug Area

Chapter 6. Lab 2: Debug

Chapter 7. Classes

1. Single Inheritance

2. Properties: let/var

3. Initializers/deinit

4. Functions

Chapter 8. Lab 3: Class/Function

Chapter 9. Structs

1. Similarities to Classes

2. Differences to Classes

Chapter 10. More on Properties

1. wilSet/didSet Observers

2. Computed

Chapter 11. OOP in Swift

Chapter 12. Simulator

Chapter 13. UI Design

1. Controls (Label, Button, Picker, Slider, Stepper, etc.)

2. Views

3. Outlets (Lab 4)

4. Actions (Lab 5)

5. TextField (Lab 6)

Chapter 14. Lab 7: Tip Calculator

Chapter 15. Collections

1. Array

2. Set

3. Tuples

4. Dictionary

5. String

6. Operators

Chapter 16. Control Flow

1. Ranges

2. Loops

3. Switch

Chapter 17. Lab 8: Tip Calc: Collections

Chapter 18. UI Design: Auto-Layout

1. Constraints

2. Variants

3. Stack Views

Chapter 19. Lab 9: Tip Calc: UI

Chapter 20. Constraints in Code

Chapter 21. Lab 10: Tip Calc: Code UI

Chapter 22. Swift UI *

Chapter 23. Lab 11: Tip Calc SwiftUI *

Chapter 24. Thinking Swifty

1. Error/Throw

2. do/try/catch

3. Enums

4. Optionals

5. Operators & Types

6. Guard

7. Defer

8. Access Control

9. Typealias

Chapter 25. Lab 12: Enum/Op/Guard

Chapter 26. Unit Testing

1. Unit Tests

2. Performance Tests

3. UI Tests

Chapter 27. Lab 13: Unit Tests

Chapter 28. Patterns

1. Extensions

2. Protocols

3. Delegate

Chapter 29. TableView

1. Table

2. Cells

3. Delegate/Datasource

Chapter 30. Lab 14: TableView

Chapter 31. More TableView

1. Delete

2. Editing Actions

3. Swipe Actions

Chapter 32. UI Design: Advanced TableView

1. Refresh Control

2. TableView Controller

3. Custom Cells

Chapter 33. Controllers

1. Navigation

2. Segues

3. Tab Bar

Chapter 34. Lab 15: Navigation

Chapter 35. Data

1. Data Class

2. Files

3. UserDefaults

Chapter 36. Lab 16: Files

Chapter 37. Closures

1. Higher Order Functions

2. Closures

3. Function Types

Chapter 38. Lab 11: Higher Order Functions

Chapter 39. Server Communication with URLSession

Chapter 40. Lab 11: Server Communication

Chapter 41. JSON & Codable

1. Decodable

2. Encodable

3. CodingKeys

Chapter 42. Lab 13: Server/JSON

Chapter 43. UI Interaction

1. Touches

2. Gestures

3. Animation

Chapter 44. Lab 20: Gestures/Animation

Chapter 45. Notifications

1. Local

2. Push

3. Handling Notifications

4. NotificationCenter

Chapter 46. Threading

Chapter 47. Frameworks

1. CoreData

2. CoreLocation

3. MapKit

Chapter 48. Lab 21: Map & Location

Chapter 49. WebView

1. WebKit

2. SafariKit

Chapter 50. Lab 22: WebView & JavaScript

Chapter 51. Lab 23: More WebView & JavaScript

Chapter 52. App Dev Considerations

1. App States

2. Git

3. Pods

4. Icons

Chapter 53. Localization

Chapter 54. Deployment

 

Other optional/alternative content items:

Lazy properties/Collections

Generics

Input Accessory

Collection View

Image Access

Contacts

Email

Calls

SMS

LocalAuth/Biometric Authentication

Accessibility

ObjC/Swift Interoperability

Unit Test expectations

MVC vs MVVM

Protocol Oriented Programming

Functional Programming