Managing the memory in Combine to build a timer app
When a client subscribes to a publisher, the result should be held somewhere. Usually, it is stored in a Set of AnyCancellable. If the client subscribes to multiple publishers, the code is a bit repetitive: it would be better to have a way to wrap all subscriptions and put all the results in the same set.
In this recipe, we'll use a new feature of Swift 5.1, the function builders, to create an extension to the Set of AnyCancellable, wrap all the subscriptions, and store them in the set.
In this recipe, we are going to create a StopWatch app using three publishers: one for the deciseconds, one for the seconds, and one for the minutes. We will also learn how to use timers in Combine.
Getting ready
Let's create a SwiftUI app called StopWatchApp.
How to do it…
The goal of the app is to have a stopwatch that can be started and stopped using a button. We are going to implement the counter using three...