swift - xcode 11 release date




Ist SwiftUI abwärtskompatibel mit iOS 12.x und älter? (6)

Möglicherweise ist es abwärtskompatibel

Swift 5.1 ist noch nicht freigegeben, und SwiftUI verwendet Funktionen wie opake Rückgabetypen , DSL , propertyDelegate (in WWDC als propertyWrapper eingeführt ) usw., die nur in Swift 5.1 verfügbar sind. Da Swift 5 binär stabil ist, war es vermutlich nicht möglich, eingebettete swift-Frameworks in Xcode11 zu verwenden. Daher haben sie diese Funktionen in Cocoas Kern neu implementiert und sie als iOS13 + verfügbar markiert, bis Swift 5.1 veröffentlicht wird.

Meine Annahmen basieren auf der Tatsache, dass Ordered Collection Diffing und DSL in Swift 5.1 verfügbar sein werden und keine Korrelationen mit Xcode oder Apples Ökosystem aufweisen, aber sie sind auch als @available(iOS13,...) . Dies bedeutet, dass sie alles mit Swift 5.1-Funktionen mit dem Verfügbarkeitsattribut iOS kennzeichnen mussten. Einige von ihnen werden entfernt, sobald Swift 5.1 veröffentlicht wird, aber wir können nicht sicher sein, ob SwiftUI und Combine anders SwiftUI . Dies wird auch im Vorschlag von DSL erwähnt:

Umsetzung: PR . Beachten Sie, dass die Implementierung in der Xcode-Entwicklervorschau eine etwas einfachere Transformation verwendet als die hier beschriebene. Die verknüpfte PR spiegelt die Implementierung in der Vorschau wider, befindet sich jedoch in aktiver Entwicklung, um diesem Vorschlag zu entsprechen.

Die Einschränkung der Rückwärtskompatibilität wird möglicherweise aufgehoben, wenn Swift 5.1 veröffentlicht wird. Dies muss jedoch vom Apple-Team geklärt werden .

Wenn ich eine mit swiftUI erstellte App habe, funktioniert sie für iOS unter iOS 13?



Ich denke nicht, weil alle Bibliotheken bereits für iOS 13 oder höher mit Anmerkungen versehen sind.

In der documentation erwähnt Apple außerdem die unterstützten Versionen:

  • iOS13.0 + Beta
  • macOS10.15 + beta
  • tvOS 13.0+ Beta
  • watchOS 6.0+ Beta


Ich habe es gerade in Xcode 11 ausgecheckt und kann bestätigen, dass es nicht abwärtskompatibel ist, wie in der View Implementierung von SwiftUI zu sehen ist:

/// 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 }
}

Wenn Sie auf iPhone und nicht auf iPad fotografieren, können Sie davon ausgehen, dass die meisten Benutzer innerhalb von 12 bis 18 Monaten (beginnend mit dem Veröffentlichungsdatum) auf iOS 13 upgraden werden. Vielleicht 85-90%? (Ich denke, Apple sagte zu diesem Zeitpunkt, dass es immer noch 15% der Leute gibt, die nicht mit iOS 12 arbeiten.) Bis dahin ist es jedoch noch eine Weile her, bis Sie SwiftUI-Apps nicht sofort bereitstellen können, da Sie sonst die Gefahr laufen, viele Benutzer zu entfremden.

Abhängig davon, wie hoch die anderen 10-15% sind, könnte dies auch bedeuten, dass viele Benutzer (und $ $) für Sie auf dem Tisch verbleiben.

Wenn Sie auch das iPad unterstützen, ist es schwieriger, weil die Leute ihre iPads nicht so oft aktualisieren. Es gibt viele iPad 2s sowie iPads der 3. und 4. Generation, die noch in der Natur sind und nur 10.3.3 haben und nicht mehr upgraden können. Die Leute werden einfach nicht aufstehen und zwischen 400 und 1.000 US-Dollar für ein neues iPad bezahlen, wenn ihr iPad einwandfrei funktioniert.

Es gibt immer Platz und die Notwendigkeit, die App zu aktualisieren, sie zu verbessern und Fehler zu beheben, die nicht unbedingt mit iOS 13 zu tun haben. Nicht auf der neuesten iOS-Version. und wir haben nicht einmal über Unternehmens- / Firmenkunden gesprochen, die von vielen Entwicklershops unterstützt werden. In diesem Bereich gibt es aus verschiedenen Gründen viel mehr Pushbacks für iOS-Updates.

Bevor Sie sich also für iOS 13 und SwiftUI begeistern (was Sie unbedingt tun sollten, weil es großartig ist), werden Sie in der realen Welt außerhalb von Silicon Valley nicht genau das finden, was der Durchschnittsverbraucher erwartet und was Sie unterstützen müssen ältere Geräte und müssen, weil es einfach zu viele Leute gibt, die Sie entfremden würden.


Wie jeder gesagt hat, wird es nicht abwärtskompatibel mit älteren iOS-Versionen sein. Angesichts der Tatsache, dass Apple stets über eine hohe Installationsbasis für sein aktuelles iOS verfügt und iOS 13 ein iPhone 6S oder höher, iPad Air 2 oder höher, das neue iPad mini 4 und iPhone SE erfordert. Die überwiegende Mehrheit der Benutzer wird in der Lage sein, iOS 13 zu installieren und schöne SwiftUI-Apps zu genießen.







swiftui