Highlights
- Overview of SwiftUI and Xcode
- Why use SwiftUI compared to UIKit? (Pros and Cons)
- SwiftUI Application Lifecycle
- Arranging Views on the UI
- Basic Interaction
- Understand basic interaction User Interface controls
- Subviews
- Sharing Data Between Structures
- GeometryReader
- Understand ViewBuilders
- Tab Views
- Pickers
- Introduction to Lists
- Modal and Navigation Views
- Saving data
- SwiftUI/UIKit interoperability
- SwiftUI best practices, workarounds and limitations
Here is a short video of a session on sets in Swift that would be taught during JBI Training's 4 day Swift training course.
Course Details
Overview of SwiftUI and Xcode
- Overview of SwiftUI features
- SwiftUI file types use in an App Project
- Walk through of all the main features of the Xcode IDE
- Preview mode and the Simulator
- Useful Shortcuts
- Project templates for Multiplatform, iOS/iPadOS, macOS, watchOS & tvOS
- Anatomy of an application
- Understand sandboxing
- What makes up an iOS app
- Understand SwiftUI App Hierarchy
- Understand the role of scenes and views
- Info.plist
- Understand the coordinate system used for placing views
- Understanding about app icons and launch images
- Overview of Preview Area
- Overview of Libraries
Lab 1 - Build a simple “Hello World App” in SwiftUI using Xcode
Why use SwiftUI compared to UIKit? (Pros and Cons)
- Overview of UIKit compared to SwiftUI
- Pros and cons of UIKit
- Pros and cons of SwiftUI
SwiftUI Application Lifecycle
- Understand Scene Phase
- active
- inactive
- background
- Understand the Application Lifecycle
- Not running
- Inactive
- Active
- Suspended
Lab 2 - Build an App that displays the Scene Phase and Application Lifecycle
Arranging Views on the UI
- Understand what a Stacks are available in SwiftUI
- VStack
- HStack
- ZStack
- Stack alignments
- Understand Padding Modifiers
- top
- bottom
- leading
- trailing
- horizontal
- vertical
- Understand the different properties
- Understand Spacers
Lab 3 - Build an App using Stacks and Padding
Basic Interaction
- Understand user interaction in SwiftUI
- Buttons
- Text
- @State
Lab 4 - Build Appwith user interactive buttons
Lab 5 - Build a Quiz App
Understand basic interaction User Interface controls
- Text
- TextField
- Slider
- Toggle
- Segment Picker
- Stepper
- ContextMenu
- Alerts
- ActionSheets
Lab 6 - Build an app using all the controls
Subviews
- Understanding sub-views in SwiftUI
- Calling a sub-view from a main view
- Using images in an app
Lab 7 - Build an app with a sub-view
Sharing Data Between Structures
- Using Structures in SwiftUI to build other views
- Sharing data with Bindings
- StateObject and ObservedObject
- EnvironmentalObject
Lab 9 - Build an app with Bindings to pass data
Lab 10 - Build an app with StateObject and ObservedObject to pass data
Lab 11 - Build an app using EnvironmentalObject to pass data
GeometryReader
- Overview of GeometryReader
- Max
- Min
Lab 12 - Build an app with using GeometryReader
Lab 13 - Build an app using GeometryReader Max and Min
Understand ViewBuilders
- ResultBuilders
- Overview of SwiftUI ViewBuilders
- Creating Childview using a ViewBuilder
Lab 14 - Build an app using ViewBuilders
Tab Views
- Understand Tab Views
- Using simple Tab Views
- Embedding Views in Tab Views
Lab 15 - Build an app using Tab Views
Pickers
- Understanding Pickers
- Single Pickers
- Double Pickers
- Dependant Pickers
Lab 16 - Build an app using various type of Picker
Introduction to Lists
- Basic Lists
- OutlineGroups
- DisclosureGroups
- Load Data/images to lists dynamically
Lab 17 - Build an app using Lists to display data sets
Modal and Navigation Views
- Understand presenting Modal Views
- Using Navigation Controllers
Lab 18 - Build an app using Modal Views for navigation
Lab 19 - Build an app using Navigation Views for navigation
Saving data
- The Codable Protocol
- Using an Encoder
- Using a Decoder
- Saving data to a Plist file
- Reading Data from a Plist file
- Saving Data in a json format
- Reading Data in a json format
Lab 20 - Build an app that saves data to a Plist file
Lab 21 - Build an app that saves data to a json file
SwiftUI/UIKit interoperability
- Overview of SwiftUI and UIKit interoperability
- Intergrating UIViews into SwiftUI
- MakeUIView()
- updateView()
- dismantleUIView()
- Using a coordinator
- Handeling UIKit Deligation and Data Sources
- Intergrating UIViewControllers into SwiftUI
Lab 22 - Build an app that integrates a UIView into SwiftUI
Lab 23 - Build an app that integrates a UIViewController into SwiftUI
SwiftUI best practices, workarounds and limitations
- Best practices to use when building a SwiftUI app
- Workarounds when problems occur
- Limitations of SwiftUI
- Considerations about when to use SwiftUI or UIKit
*** Additional topics that could be covered on a 4 day course
- Using Combine with SwiftUI
- Advanced List
- Spilt Views
- WebViews
- Maps
Who should attend
Feedback
4.8 out of 5 average
"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"
Brian Leek, Data Analyst, May 2022
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022