Integrating UIKit into SwiftUI – the best of both worlds
SwiftUI was announced at WWDC 2019 and is only available on devices running iOS 13 and above. Due to its relative immaturity, SwiftUI may lack broad API coverage compared to UIKit. For example, as of July 2021, at the time of this writing, pictures and movies can only be handled using UIKit's UIImagePickerController
. There is, therefore, a need to implement certain UIKit APIs in SwiftUI.
In this recipe, we'll look at how to integrate UIKit APIs in SwiftUI. We will create a project that wraps instances of UIActivityIndicatorView
to display an indicator in SwiftUI.
Getting ready
Open Xcode and create a SwiftUI project named UIKitToSwiftUI
.
How to do it…
We can display UIKit views in SwiftUI by using the UIViewRepresentable
protocol. Follow these steps to implement the UIActivityIndicatorView
in SwiftUI:
- Within the Xcode menu, click File | New | File and select Swift File. Name the...