SwiftUI обратно совместим с iOS 12.x и старше? - PullRequest
52 голосов
/ 03 июня 2019

Если у меня есть приложение, созданное с помощью swiftUI, будет ли оно работать для iOS ниже iOS 13?

Ответы [ 8 ]

43 голосов
/ 03 июня 2019

Я только что проверил это в Xcode 11 и могу подтвердить, что он не будет обратно совместим, как видно из реализации View SwiftUI:

/// A piece of user interface.
///
/// You create custom views by declaring types that conform to the `View`
/// protocol. Implement the required `body` property to provide the content
/// and behavior for your custom view.
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
public protocol View : _View {

    /// The type of view representing the body of this view.
    ///
    /// When you create a custom view, Swift infers this type from your
    /// implementation of the required `body` property.
    associatedtype Body : View

    /// Declares the content and behavior of this view.
    var body: Self.Body { get }
}
18 голосов
/ 04 июня 2019

Я так не думаю, потому что все библиотеки уже аннотированы для iOS 13 или выше.

Кроме того, в документации Apple четко упоминает поддерживаемые версии:

  • iOS13.0 + бета
  • macOS10.15 + бета
  • tvOS 13.0+ бета
  • watchOS 6.0+ бета

enter image description here

13 голосов
/ 12 июня 2019

Это может быть обратно совместимым

Swift 5.1 еще не выпущен, а SwiftUI использует такие функции, как непрозрачные типы возврата , DSL , propertyDelegate (введено в WWDC как propertyWrapper ) и т. Д., Которые будут доступны только в Swift 5.1. Поскольку Swift 5 является бинарной стабильной версией, я думаю, что было невозможно использовать встроенные swift-frameworks внутри Xcode11, поэтому они повторно реализовали эти функции в ядре Cocoa и отметили их как iOS13 +, доступные до выхода Swift 5.1.

Мои предположения основаны на том факте, что Упорядоченная коллекция Diffing и DSL будут доступны в Swift 5.1 и не имеют корреляции с Xcode или экосистемой Apple, но они также помечены как @available(iOS13,...). Это означает, что они должны были пометить все, используя функции Swift 5.1, с атрибутом доступности iOS. Некоторые из них будут удалены после выхода Swift 5.1, но мы не можем быть уверены в SwiftUI и Combine, если Apple не скажет иначе. Это также упоминается в предложении DSL :

Реализация: PR . Обратите внимание, что реализация в предварительном просмотре разработчика Xcode использует несколько более простое преобразование, чем описанное здесь. Связанная PR отражает реализацию в предварительном просмотре, но находится в активной разработке, чтобы соответствовать этому предложению.

Таким образом, ограничение обратной несовместимости может быть снято, когда выйдет Swift 5.1, но на самом деле необходимо уточнить в команде Apple .

8 голосов
/ 03 июня 2019

Нет. SwiftUI требует целевого развертывания iOS 13 или более поздней версии, macOS 15 или более поздней версии, tvOS 13 или более поздней версии или watchOS 6 или более поздней версии. Каркас содержит много новых типов, которых нет в старых версиях ОС.

6 голосов
/ 06 июня 2019

Если вы снимаете для поддержки iPhone, а не iPad, вы, вероятно, ожидаете, что большинство пользователей перейдут на iOS 13 в течение 12-18 месяцев (начиная с даты выпуска). Может 85-90%? (Я думаю, что Apple сказала, что на данный момент все еще 15% людей не работают на iOS 12). Это еще долгое время, хотя вы не сможете сразу развернуть приложения SwiftUI, иначе рискуете оттолкнуть многих пользователей.

Кроме того, в зависимости от того, что представляют собой остальные 10-15%, это может означать, что для вас останется много пользователей (и $$).

Если вы также поддерживаете iPad, то его сложнее, потому что люди не обновляют свои iPad так часто. Theres много iPad 2s, а также iPad 3-го и 4-го поколения все еще в дикой природе, которые имеют только 10.3.3 и не могут больше обновляться. Люди просто не собираются вставать и платить от 400 до 1000 долларов за новый iPad, когда у них отлично работает.

Всегда есть место и нужно обновить приложение, сделать его лучше, исправить ошибки, которые не обязательно имеют какое-либо отношение к iOS 13. т.е. найти ошибку, о которой вы раньше не знали, что делает много пользователи недовольны .. не на последней версии iOS. и мы даже не говорим о корпоративных / корпоративных клиентах, которых поддерживают многие магазины разработчиков. Theres много больше откат на обновления iOS по различным причинам в этой области.

Итак, прежде чем вы будете в восторге от iOS 13 и SwiftUI (что вам абсолютно необходимо, потому что это круто), вернемся в реальный мир, за пределы Силиконовой долины, это не совсем соответствует тому, что ожидает средний потребитель, и вы нужно поддерживать старые устройства и нужно, потому что слишком много людей, которых вы бы оттолкнули.

6 голосов
/ 03 июня 2019

На основании документации Apple, к сожалению, она доступна только с iOS 13.

https://developer.apple.com/documentation/swiftui/

6 голосов
/ 03 июня 2019

Совместимо с iOS 13+.Вот ссылка на его документацию.

https://developer.apple.com/documentation/swiftui/


Даже Xcode 10 не поддерживает его.Вам нужно использовать Xcode 11, который находится в бета-версии (3 июня 2019 г.).https://developer.apple.com/tutorials/swiftui/creating-and-combining-views

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

Как все говорили, он не будет обратно совместим со старыми версиями iOS. Но, учитывая, что Apple постоянно имеет высокую базу установки своих последних iOS, а также учитывая, что iOS 13 требует iPhone 6S или более поздней версии, iPad Air 2 или более поздней версии, новых iPad mini 4 и iPhone SE. Подавляющее большинство пользователей смогут установить iOS 13 и наслаждаться прекрасными приложениями SwiftUI.

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