TP3162
iOS Development with Swift Training
This iOS course teaches the core development elements, techniques and practices for iOS development using Swift.
Course Details
Duration
5 days
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
Skills Gained
- iOS app development
- Swift syntax and framework
- Higher Order Functions
- Closures
- Protocols and Extensions
- Classes, Structs, Enums
- Server communication
- Binary and JSON data handling
- UI design with Storyboards
- SwiftUI
- Generics
- Delegate/Datasource pattern usage
Course Outline
- Intro
- Swift Versions
- swift.org
- Xcode
- Structure of an App
- iOS Templates
- View Controllers
- Views
- Storyboards
- Icons
- Object Library
- App Delegate
- Scene Delegate
- Lab 1: Hello World
- SwiftUI Structure
- SwiftUI App
- ContentView
- View
- Lab: Hello SwiftUI
- Tour of Xcode
- Target Settings
- Navigators
- Editor Area
- Inspectors
- Debugging
- Breakpoints
- Debug Area
- Lab 2: Debug
- Classes
- Single Inheritance
- Properties: let/var
- Initializers/deinit
- Functions
- Generics
- Lab 3: Class/Function
- Structs
- Similarities to Classes
- Differences to Classes
- More on Properties
- wilSet/didSet Observers
- Computed
- OOP in Swift
- Simulator
- UI Design
- Controls (Label, Button, Picker, Slider, Stepper, etc.)
- Views
- Outlets (Lab 4)
- Actions (Lab 5)
- TextField (Lab 6)
- Lab 7: Tip Calculator
- Collections
- Array
- Set
- Tuples
- Dictionary
- String
- Operators
- Control Flow
- Ranges
- Loops
- Switch
- Lab 8: Tip Calc: Collections
- UI Design: Auto-Layout
- Constraints
- Variants
- Stack Views
- Lab 9: Tip Calc: UI
- Constraints in Code
- Lab 10: Tip Calc: Code UI
- Swift UI
- Stacks of Stacks
- UI Elements
- @State Wrapper
- Lab 11: Tip Calc SwiftUI
- Combine Framework
- Wrappers
- Published Objects
- Environment Variables
- Lab
- Thinking Swifty
- Error/Throw
- do/try/catch
- Enums
- Optionals
- Operators & Types
- Guard
- Defer
- Access Control
- Typealias
- Lab 12: Enum/Op/Guard
- Unit Testing
- Unit Tests
- Performance Tests
- UI Tests
- Async/await
- Lab 13: Unit Tests
- Patterns
- Extensions
- Protocols
- Delegate
- TableView
- Table
- Cells
- Delegate/Datasource
- Lab 14: TableView
- SwiftUI Lists
- List
- ForEach
- Lab
- More TableView
- Delete
- Editing Actions
- Swipe Actions
- UI Design: Advanced TableView
- Refresh Control
- TableView Controller
- Custom Cells
- Controllers
- Navigation
- Segues
- Tab Bar
- Lab 15: Navigation
- SwiftUI Navigation
- Navigation View
- Navigation Link
- Data
- Data Class
- Files
- UserDefaults
- Lab 16: Files
- Closures
- Higher Order Functions
- Closures
- Function Types
- Lab 11: Higher Order Functions
- JSON & Codable
- Decodable
- Encodable
- CodingKeys
- Lab 13: Server/JSON
- UI Interaction
- Touches
- Gestures
- Animation
- Lab 20: Gestures/Animation
- Notifications
- Local
- Push
- Handling Notifications
- NotificationCenter
- Threading
- Concurrency
- Lab
- Frameworks
- CoreLocation
- MapKit
- Lab 21: Map & Location
- WebView
- WebKit
- SafariKit
- Lab 22: WebView & JavaScript
- Lab 23: More WebView & JavaScript
- App Dev Considerations
- App States
- Git
- Pods
- Icons
- Localization
- Deployment