Re-work generic type for images
Here's a neat idea from Daniel Saidi.
https://danielsaidi.com/blog/2022/04/25/how-to-bridge-platform-specific-types-in-swift-and-swiftui
You define a new protocol ImageRepresentable
and extend both UIImage
and NSImage
to implement it. (Using #if canImport ...
on each one, as appropirate.)
Then for SwiftUI Image
, you define a new constructor like this
import SwiftUI
extension Image {
init(_ image: ImageRepresentable) {
#if canImport(UIKit)
self.init(uiImage: image)
#elseif canImport(Cocoa)
self.init(nsImage: image)
#endif
}
}