Как включить Framework SwiftUI - PullRequest
1 голос
/ 07 июня 2019

Мы можем использовать Framework SwiftUI только с iOS 13.0+.Итак, как включить эту платформу из цели развертывания 10.0 или хотя бы 12.0.

enter image description here

Ответы [ 2 ]

2 голосов
/ 10 июня 2019

Этапы сборки → Связать двоичные файлы с библиотеками → Добавить SwiftUI.framework (Статус: Необязательно)

import SwiftUI

@available(iOS 13.0, *)
struct SwiftUIView : View {
    var body: some View {
        Text("Hello World!")
    }
}

#if DEBUG
@available(iOS 13.0, *)
struct SwiftUIView_Previews : PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}
#endif

и т. Д.

Предварительный просмотр SwiftUI для этой цели не работает, но вы можете добавить специальную цель «Предварительный просмотр SwiftUI».

0 голосов
/ 07 июня 2019

Нет разумного способа сделать это. #available или @available позволяют различать некоторые фрагменты кода или целые классы, но не само приложение.

Вы можете использовать @available, чтобы заставить замолчать предупреждения о структуре или классах SwiftUI с целью развертывания 12.0, но в этом случае вам необходимо полностью дублировать пользовательский интерфейс из раскадровок (.xib, как угодно), используя Swift UI. Более того, совершенно другой подход «связывания» также потребует от вас переопределить существующую логику в этом приложении (не имеет значения, какую архитектуру вы использовали ранее). Любой VIPER, VIP, MVC предназначен для отправки уведомлений об изменении данных в ViewController (View)? в Swift UI вам нужно использовать Bindable объекты. Это также заставляет вас создавать дубликаты ViewModels (если они у вас есть), потому что они будут другими.

Результат? У вас есть вторая реализация пользовательского интерфейса, вторая реализация моделей представлений, дополнительные 80% реализации презентатора (или что вы используете). Только базы данных и остальные менеджеры будут использоваться повторно. И это действительно, если у вас очень хорошая архитектура. Не забывайте, что вам нужно поддерживать две ветви пользовательского интерфейса и логику.

Существует два способа: перестроить почти полное приложение для поддержки SwiftUI и UIKit или, если вы не хотите, чтобы поддерживалась только одна iOS 13, подождите, пока выйдет iOS 14, а затем поддерживать оба из них с SwiftUI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...