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