Author(s): raywenderlich, Shai Mishali, Florent Pillet, Marin Todorov
Edition: First Edition
Publisher: Leonatom
Year: 2020
Language: English
Pages: 0\436
About the Cover
About the Authors
About the Artist
What You Need
Book License
Book Source Code & Forums
Chapter 1: Hello, Combine!
Asynchronous programming
Foundation of Combine
Combine basics
What's the benefit of Combine code over "standard" code?
App architecture
Book projects
Key points
Where to go from here?
Chapter 2: Publishers & Subscribers
Getting started
Hello Publisher
Hello Subscriber
Hello Cancellable
Understanding what’s going on
Creating a custom subscriber
Hello Future
Hello Subject
Dynamically adjusting demand
Type erasure
Challenge
Key points
Where to go from here?
Chapter 3: Transforming Operators
Getting started
Collecting values
Mapping values
Flattening publishers
Replacing upstream output
Incrementally transforming output
Challenge
Key points
Where to go from here?
Chapter 4: Filtering Operators
Getting started
Filtering basics
Compacting and ignoring
Finding values
Dropping values
Limiting values
Challenge
Key points
Where to go from here?
Chapter 5: Combining Operators
Getting started
Prepending
Appending
Advanced combining
Key points
Where to go from here?
Chapter 6: Time Manipulation Operators
Getting started
Shifting time
Collecting values
Collecting values (part 2)
Holding off on events
Timing out
Measuring time
Challenge
Key points
Where to go from here?
Chapter 7: Sequence Operators
Getting started
Finding values
Querying the publisher
Key points
Where to go from here?
Chapter 8: In Practice: Project "Collage"
Getting started with "Collage"
Talking to other view controllers
Wrapping a callback function as a future
Presenting a view controller as a future
Sharing subscriptions
Publishing properties with @Published
Operators in practice
Challenges
Key points
Where to go from here?
Chapter 9: Networking
URLSession extensions
Codable support
Publishing network data to multiple subscribers
Key points
Where to go from here?
Chapter 10: Debugging
Printing events
Acting on events — performing side effects
Using the debugger as a last resort
Key points
Where to go from here?
Chapter 11: Timers
Using RunLoop
Using the Timer class
Using DispatchQueue
Key points
Where to go from here?
Chapter 12: Key-Value Observing
Introducing publisher(for:options:)
Preparing and subscribing to your own KVO-compliant properties
ObservableObject
Key points
Where to go from here?
Chapter 13: Resource Management
The share() operator
The multicast(_:) operator
Future
Key points
Where to go from here?
Chapter 14: In Practice: Project "News"
Getting started with the Hacker News API
Getting a single story
Multiple stories via merging publishers
Getting the latest stories
Challenges
Key points
Where to go from here?
Chapter 15: In Practice: Combine & SwiftUI
Hello, SwiftUI!
Getting started with "News"
A first taste of managing view state
Fetching the latest stories
Using ObservableObject for model types
Displaying errors
Subscribing to an external publisher
Initializing the app's settings
Editing the keywords list
Challenges
Key points
Where to go from here?
Chapter 16: Error Handling
Getting started
Never
Dealing with failure
Key points
Where to go from here?
Chapter 17: Schedulers
An introduction to schedulers
Operators for scheduling
Scheduler implementations
Challenges
Key points
Where to go from here?
Chapter 18: Custom Publishers & Handling Backpressure
Creating your own publishers
Publishers as extension methods
The subscription mechanism
Publishers emitting values
Publishers transforming values
Handling backpressure
Key points
Where to go from here?
Chapter 19: Testing
Getting started
Testing Combine operators
Testing production code
Challenges
Key points
Where to go from here?
Chapter 20: In Practice: Building a Complete App
Getting started
Setting goals
Implementing JokesViewModel
Wiring JokesViewModel up to the UI
Implementing Core Data with Combine
Challenge
Key points
Where to go from here?
Conclusion