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
Calls
SMS
LocalAuth/Biometric Authentication
Accessibility
ObjC/Swift Interoperability
Unit Test expectations
MVC vs MVVM
Protocol Oriented Programming
Functional Programming