Zenler Player
Your course is loading. Hang tight.
The Swifty Combine Framework Course
Back to curriculum
0% Complete
0% Complete
Outline and Objectives
Materials for this section
1.1 Introduction to functional reactive programming
1.2 Write your first data stream with sink
1.3 How and when can a data stream complete
1.4 How to use assign(to, on) with a small demo for UIKit
1.5 Creating a memory cycle with assign(to,on) on self
1.6 A newer operator assign(to) for @Published properties
1.7 First thoughts on Multithreading in Combine: receive(on)
1.8 Change the thread of the upstream publisher with subscribe(on)
1.9 Subscription pattern
1.10 Print Operator
1.11 HandleEvent Operator
1.12 Breakpoint Operator
Quiz
Materials for this section
2.1 An overview of the available publishers
2.2 CurrentValueSubject
2.3 PassthroughSubject
2.4 Property wrapper @Published
2.5 Where is the Combine in SwiftUI
2.6 Demo project with UIKit
2.7 Demo project with SwiftUI
2.8 Sequence Publisher
2.9 Just Publisher
2.10 Future
2.11 Deferred
2.12 Example use case for Future
2.13 Demo project continued
2.14 Example for Future: push notifications
2.15. Example for Future: Firebase Auth
2.16 Example for custom publisher
2.17 Example: Using Firebase publishers
2.18 Type-erasing and AnyPublisher
2.19 Fail
2.20 Empty
2.21 The Timer publisher
2.22 URLSession data task publisher
2.23 NotificationCenter publisher
2.24 KVO publisher
2.25 Publisher for UIControlViews
Quiz
Material for this section
3.1 Introduction to operators
3.1.1 Introduction to combining operators
3.1.2 prepend
3.1.3 append
3.1.4 merge
3.1.5 zip
3.1.6 combineLatest
3.1.7 share and makeConnectable
3.1.8 multicast
3.1.9 Example for share
3.1.10 flatMap
3.1.11 Example for flatMap
3.1.12 flatMap(maxPublisher) and buffer
3.1.13 switchToLatest
Untitled lesson
Material for this section
3.2.1 Section overview
3.2.2 map
3.2.3 tryMap, compactMap and tryCompactMap
3.2.4 decode and encode
3.2.5. scan and tryScan
3.2.6 Example: fetching posts dynamically
3.2.7 Overview of throwing errors
3.2.8 Matching failure types with setFailureType
3.2.9 mapError
3.2.10 Error handling
3.2.11 replaceEmpty
3.2.12 retry
3.2.13 Example for tryCatch - low data mode
3.2.14 Example: errors and flatMap
Material for this section
3.3.1 The First and Last Operators
3.3.2 The Output and Count operators
3.3.3 Min and Max
3.3.4 Contains and AllSatisfy
3.3.5 Collect and Reduce
3.3.6 ✋ Challenge Time
Material for this section
3.4.1 The Filter operator
3.4.2 RemoveDuplicates
3.4.3 The drop and prefix operators
3.4.4 throttle and debounce
3.4.5 🖐 Challenge time
3.4.6 🖐 More Challenges
Material for this section
3.5.1 Scheduler protocol
3.5.2 Timing operators
3.5.3 RunLoop and ImmediateScheduler
3.5.4 Multithreading
3.5.5 subscribe(on)
3.5.6 receive(on)
3.5.7 Multiple receive(on)
3.5.8 Concurrent execution with flatMap
3.5.9 ✋ Challenge Time
4.1 Introduction to Design Patterns
4.2 Communication Patterns
4.3 Communication with UI elements
4.4 Example: creating a 2 way binding
4.5.1 Demo-Project UIKit: To-do app
4.5.2 Demo continued: closures and Combine
4.5.3 Demo: 🖐 Challenge
4.6.1 Demo-Project UIKit: Firebase
4.6.2 Demo continued: Using the Onboarding flow
4.6.3 Demo continued: Authentication flow
4.6.4 Demo continued: Firestore database
4.7.1 How MVVM works with SwiftUI
4.7.2 Demo-project SwiftUI
4.7.3 Demo continued: onboarding
4.7.4 Demo continued: Firebase Auth
4.7.5 Demo continued: multiple VM
5.1 What we will work on
5.2 API set-up
5.3 View Model for fetching the albums
5.4 Dependency Injection and Unit Test
5.5 Fetching photos for selected album
5.6 Displaying the photos in a separate view
5.7 How to fetch the thumbnails dynamically
5.8 Storing images in NSCache
5.9 Profiling with Timelane
5.10 More Unit tests
5.11 Unit tests for updating photos property
5.12 The UIKit version
5.13 🖐 Final challenge
0. Introduction
Outline and Objectives
Preview
1. Subscriptions
Materials for this section
1.1 Introduction to functional reactive programming
Preview
1.2 Write your first data stream with sink
Preview
1.3 How and when can a data stream complete
Preview
1.4 How to use assign(to, on) with a small demo for UIKit
Preview
1.5 Creating a memory cycle with assign(to,on) on self
1.6 A newer operator assign(to) for @Published properties
1.7 First thoughts on Multithreading in Combine: receive(on)
1.8 Change the thread of the upstream publisher with subscribe(on)
1.9 Subscription pattern
1.10 Print Operator
1.11 HandleEvent Operator
1.12 Breakpoint Operator
Quiz
Preview
2. Publishers
Materials for this section
2.1 An overview of the available publishers
2.2 CurrentValueSubject
2.3 PassthroughSubject
2.4 Property wrapper @Published
2.5 Where is the Combine in SwiftUI
2.6 Demo project with UIKit
2.7 Demo project with SwiftUI
2.8 Sequence Publisher
2.9 Just Publisher
2.10 Future
2.11 Deferred
2.12 Example use case for Future
2.13 Demo project continued
2.14 Example for Future: push notifications
2.15. Example for Future: Firebase Auth
2.16 Example for custom publisher
2.17 Example: Using Firebase publishers
2.18 Type-erasing and AnyPublisher
2.19 Fail
2.20 Empty
2.21 The Timer publisher
2.22 URLSession data task publisher
2.23 NotificationCenter publisher
2.24 KVO publisher
2.25 Publisher for UIControlViews
Quiz
3.1 Operators: Combining data streams
Material for this section
3.1 Introduction to operators
3.1.1 Introduction to combining operators
3.1.2 prepend
3.1.3 append
3.1.4 merge
3.1.5 zip
3.1.6 combineLatest
3.1.7 share and makeConnectable
3.1.8 multicast
3.1.9 Example for share
3.1.10 flatMap
3.1.11 Example for flatMap
3.1.12 flatMap(maxPublisher) and buffer
3.1.13 switchToLatest
Untitled lesson
3.2 Operators for Transforming and Error Handling
Material for this section
3.2.1 Section overview
Preview
3.2.2 map
Preview
3.2.3 tryMap, compactMap and tryCompactMap
Preview
3.2.4 decode and encode
Preview
3.2.5. scan and tryScan
3.2.6 Example: fetching posts dynamically
3.2.7 Overview of throwing errors
3.2.8 Matching failure types with setFailureType
3.2.9 mapError
3.2.10 Error handling
3.2.11 replaceEmpty
3.2.12 retry
3.2.13 Example for tryCatch - low data mode
3.2.14 Example: errors and flatMap
3.3 Sequential Operators
Material for this section
3.3.1 The First and Last Operators
3.3.2 The Output and Count operators
3.3.3 Min and Max
3.3.4 Contains and AllSatisfy
3.3.5 Collect and Reduce
3.3.6 ✋ Challenge Time
3.4 Filtering Operators
Material for this section
3.4.1 The Filter operator
3.4.2 RemoveDuplicates
3.4.3 The drop and prefix operators
3.4.4 throttle and debounce
3.4.5 🖐 Challenge time
3.4.6 🖐 More Challenges
3.5 Scheduler Protocol and Multithreading
Material for this section
3.5.1 Scheduler protocol
3.5.2 Timing operators
3.5.3 RunLoop and ImmediateScheduler
3.5.4 Multithreading
3.5.5 subscribe(on)
3.5.6 receive(on)
3.5.7 Multiple receive(on)
3.5.8 Concurrent execution with flatMap
3.5.9 ✋ Challenge Time
4. Design Patterns
4.1 Introduction to Design Patterns
Preview
4.2 Communication Patterns
4.3 Communication with UI elements
4.4 Example: creating a 2 way binding
4.5.1 Demo-Project UIKit: To-do app
Preview
4.5.2 Demo continued: closures and Combine
4.5.3 Demo: 🖐 Challenge
4.6.1 Demo-Project UIKit: Firebase
4.6.2 Demo continued: Using the Onboarding flow
4.6.3 Demo continued: Authentication flow
4.6.4 Demo continued: Firestore database
4.7.1 How MVVM works with SwiftUI
4.7.2 Demo-project SwiftUI
4.7.3 Demo continued: onboarding
4.7.4 Demo continued: Firebase Auth
4.7.5 Demo continued: multiple VM
5. Testing
5.1 What we will work on
Preview
5.2 API set-up
5.3 View Model for fetching the albums
5.4 Dependency Injection and Unit Test
5.5 Fetching photos for selected album
5.6 Displaying the photos in a separate view
5.7 How to fetch the thumbnails dynamically
5.8 Storing images in NSCache
5.9 Profiling with Timelane
Preview
5.10 More Unit tests
5.11 Unit tests for updating photos property
5.12 The UIKit version
5.13 🖐 Final challenge
×
This is an unpublished lesson. This lesson will not be shown for students unless you set it as Public.
Back to Dashboard
No contents are available in this lesson!
No lessons available !
Back to Dashboard
Lesson contents locked
Enroll to unlock this lesson.
Enroll to unlock
Next Lesson