swift ios12 swiftui

¿SwiftUI es compatible con versiones anteriores de iOS 12.x?



ios12 (8)

Si tengo una aplicación hecha con swiftUI, ¿funcionará para iOS por debajo de iOS 13?


Podría ser compatible con versiones anteriores

Swift 5.1 aún no se ha lanzado y SwiftUI utiliza características como los tipos de retorno opaco , DSL , propertyDelegate (introducido en WWDC como propertyWrapper ) y etc., que estarán disponibles solo en Swift 5.1. Dado que Swift 5 es estable en binario, supongo que no fue posible utilizar marcos de swift incorporados dentro de Xcode11, por lo que han vuelto a implementar estas características en el núcleo de Cocoa y las han marcado como iOS13 + disponibles hasta que se lance Swift 5.1.

Mis suposiciones se basan en el hecho de que, Ordered Collection Diffing y DSL estarán disponibles en Swift 5.1 y no tendrán correlaciones con Xcode o el eco-sistema de Apple, pero también están marcados como @available(iOS13,...) . Esto significa que tuvieron que marcar todo utilizando las características de Swift 5.1 con el atributo de disponibilidad de iOS. Algunos de ellos se eliminarán una vez que se SwiftUI Swift 5.1, pero no podemos estar seguros de SwiftUI y Combine menos que Apple indique lo contrario. Esto también se menciona en la propuesta de DSL :

Implementación: PR . Tenga en cuenta que la implementación en la vista previa del desarrollador de Xcode utiliza una transformación algo más simple que la descrita aquí. El PR vinculado refleja la implementación en la vista previa, pero se encuentra en desarrollo activo para coincidir con esta propuesta.

Por lo tanto, la limitación de la incompatibilidad hacia atrás podría eliminarse cuando se lance Swift 5.1, pero el equipo de Apple debe aclararlo .


Acabo de verlo en Xcode 11 y puedo confirmar que no será compatible con versiones anteriores, como se puede ver en la implementación de SwiftUI View :

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


Como todos han dicho, no será compatible con versiones anteriores de iOS. Pero dado que Apple constantemente tiene una alta base de instalación de su último iOS, y también dado que iOS 13 requiere iPhone 6S o posterior, iPad Air 2 o posterior, el nuevo iPad mini 4 y iPhone SE. La gran mayoría de los usuarios podrán instalar iOS 13 y disfrutar de las hermosas aplicaciones SwiftUI.



No lo creo, porque todas las bibliotecas ya están anotadas para iOS 13 o superior.

Además, en la documentation , Apple menciona claramente las versiones compatibles:

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


No. documentation requiere un destino de implementación de iOS 13 o posterior, macOS 15 o posterior, tvOS 13 o posterior o watchOS 6 o posterior. El marco contiene muchos tipos nuevos que no existen en versiones anteriores de los sistemas operativos.



Si está grabando para ser compatible con iPhone y no con iPad, es probable que la mayoría de los usuarios se actualicen a iOS 13 en un plazo de 12 a 18 meses (a partir de la fecha de lanzamiento). Tal vez 85-90%? (Creo que Apple dijo en este momento que todavía hay un 15% de personas que no están en iOS 12). Todavía es un tiempo bastante largo para que no pueda implementar las aplicaciones SwiftUI de inmediato o, de lo contrario, se corre el riesgo de alienar a muchos usuarios.

Además, dependiendo de lo que sea el otro 10-15%, eso podría significar que muchos usuarios (y $$) se quedaron en la mesa.

Si también está soportando el iPad, entonces es más complicado porque la gente no actualiza sus iPad con tanta frecuencia. Hay una gran cantidad de iPad 2 junto con iPads de 3ª y 4ª generación que todavía están en libertad, que solo tienen 10.3.3 y ya no se pueden actualizar. La gente simplemente no va a levantarse y pagar entre $ 400 y $ 1,000 por un nuevo iPad cuando el suyo funciona perfectamente bien.

Siempre hay espacio y una necesidad de actualizar la aplicación, mejorarla, corregir errores, que no necesariamente tienen nada que ver con iOS 13. es decir, encontrar un error que no conocía antes que hacer infeliz a muchos usuarios. No en la última versión de iOS. y ni siquiera estamos hablando de empresas / clientes corporativos a los que apoyan muchos desarrolladores. hay mucho más rechazo en las actualizaciones de iOS por varias razones en esa área.

Así que, antes de que se entusiasme con iOS 13 y SwiftUI (lo cual debería porque es increíble), en el mundo real, fuera de Silicon Valley, eso no se alineará exactamente con lo que espera el consumidor promedio y tendrá que respaldarlo. dispositivos más antiguos y necesitados, porque hay demasiadas personas a las que estarías alienando.