Converting a completion block function to async await
It's clear that async
await
is the way that Apple wants us to develop concurrent code in Swift. But what if a framework we have to use (or even our legacy code) still has a completion block-based interface? Swift 5.5 provides a simple way to convert these APIs to async
await
functions.
In this recipe, we'll use an old framework where one of its functions has a completion block API. We'll convert it to an async
await
function and we'll use it in a SwiftUI view.
The package we will use is called Lorikeet, implemented by Þorvaldur Rúnarsson (https://github.com/valdirunars). Lorikeet is an aesthetic color scheme generator. Starting with one color, it generates a series of other colors that can be used for creating a color theme for an app.
Getting ready
Create an iOS 15 SwiftUI app called PaletteGenerator
.
Import the SPM package from the following address-