Since WWDC 2019 and Xcode 11 there have been a few issues building apps with Flint. Users of master have been able to work around these but it’s time we have a public release so FlintDemo can build with Xcode 11 out of the box.
See SR-10831 for the root problem, which is a bit hard to grok (at least for me). TL:DR; The type inference system should see constraints on protocols like IntentAction that fully satisfy the associated types of Action but it doesn’t, so we have to also specify the associatedtype so that conforming types can compile. Thanks again to @slava_pestov in the Swift labs at WWDC for troubleshooting this.
Also thanks to @davidbrunow who helped me work through some tricky Xcode 11/10 compile issues related to Catalyst!
This release has minor enhancements:
- A typealias for FlintCore’s
UIAction
toFlintUIAction
. UIKit in iOS 13 introduced a UIAction type so there is a collision and ugly compiler errors unless you write your conformance as FlintCore.UIAction which is a bit uglier than FlintUIAction. You can use either, but if you import UIKit at all you cannot use the old UIAction directly. We also have counterpartsFlintDimissUIAction
andFlintIntentAction
in case Apple decide to introduce more colliding types. Oldskool namespacing FTW. - Some compilation fixes for UIKitForMac platform (Catalyst)