How to incorporate Framework SwiftUI

前端 未结 3 1741
無奈伤痛
無奈伤痛 2021-01-02 21:16

We can use Framework SwiftUI only from iOS 13.0+. So how to incorporate this framework from the deployment Target 10.0 or at least 12.0.

3条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-01-02 21:48

    There is no reasonable way to do that. #available or @available allow you to differentiate some pieces of code or whole classes but not app itself.

    You can use @available to silence warnings of SwiftUI structure or classes with 12.0 Deployment target but in this case you need to completely duplicate UI from storyboards(.xib, whatever) using Swift UI. Moreover, completely different "binding" approach will also require you to reimplement existing logic across that app(doesn't matter what kind of architecture you have used before). Any VIPER, VIP, MVC is aimed to send some data change notifications to a ViewController(View)? in Swift UI you need to use Bindable objects. It also causes you to create duplicates of ViewModels(if you have such) because they will be different.

    Result? You have second implementation of UI, second implementation of view models, additional 80% of implementation of presenter(or what do you use). Only database and rest managers will be reused. And this is valid if you have very good architecture. Don't forget that you need to support two branches of UI and logic.

    There is two ways: redevelop almost full application to support SwiftUI and UIKit or, if you don't want to have only one iOS 13 supported, wait until iOS 14 will be released and then support both of them with SwiftUI

提交回复
热议问题