Se eu tiver um aplicativo feito com SwiftUI, ele funcionará para iOS abaixo de iOS 13?
Se eu tiver um aplicativo feito com SwiftUI, ele funcionará para iOS abaixo de iOS 13?
Respostas:
Acabei de verificar no Xcode 11 e posso confirmar que não será compatível com versões anteriores, como pode ser visto na View
implementação do 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 }
}
Acho que não, porque todas as bibliotecas já estão anotadas para iOS 13 ou superior.
Além disso, na documentação , a Apple menciona claramente as versões compatíveis:
SwiftUI e Combine usam Tipos de Retorno Opaco no Swift 5.1 e, uma vez que Tipos de Retorno Opaco (junto com outros recursos) são implementados no Swift 5.1 e devido à natureza de sua implementação, eles não podem ser implantados novamente no Swift 5.0 (ao contrário do DSL ou Property-Wrappers ), e como o iOS 13 é o SDK do iOS mais antigo que contém o tempo de execução Swift 5.1 no sistema operacional, a resposta à pergunta é não e o SwiftUI e o Combine não podem ser usados em versões anteriores do iOS.
A menos que a Apple forneça uma maneira de agrupar o tempo de execução do Swift 5.1 (ou versões futuras) com o aplicativo, como costumava fazer com as versões anteriores do Swift, mas uma vez que aumentará o tamanho do App e adicionará sobrecarga a todo o sistema novamente, duvido que isso vá nunca acontecer.
O Swift 5.1 ainda não foi lançado e SwiftUI
usa recursos como tipos de retorno opaco , DSL , propertyDelegate (apresentado no WWDC como propertyWrapper ) e etc, que estarão disponíveis apenas no Swift 5.1. Como o Swift 5 é binário estável, acho que não foi possível usar estruturas Swift incorporadas dentro do Xcode11, portanto, eles reimplementaram esses recursos no núcleo do Cocoa e os marcaram como iOS13 + disponível até o lançamento do Swift 5.1.
Minhas suposições são baseadas no fato de que Ordered Collection Diffing e DSL estarão disponíveis no Swift 5.1 e não terão correlações com o Xcode ou o ecossistema da Apple, mas também serão marcados como @available(iOS13,...)
. Isso significa que eles tiveram que marcar tudo usando os recursos do Swift 5.1 com o atributo de disponibilidade do iOS. Alguns deles serão removidos assim que o Swift 5.1 for lançado, mas não podemos ter certeza sobre isso SwiftUI
e a Combine
menos que a Apple diga o contrário. Isso também é mencionado na proposta do DSL :
Implementação: PR . Observe que a implementação na visualização do desenvolvedor do Xcode usa uma transformação um pouco mais simples do que a descrita aqui. O PR vinculado reflete a implementação na visualização, mas está em desenvolvimento ativo para corresponder a esta proposta.
Portanto, a limitação de incompatibilidade com versões anteriores pode ser removida quando o Swift 5.1 for lançado, mas realmente precisa ser esclarecido pela equipe da Apple .
Não. O SwiftUI requer um destino de implantação do iOS 13 ou posterior, macOS 10.15 ou posterior, tvOS 13 ou posterior ou watchOS 6 ou posterior. A estrutura contém muitos novos tipos que não existem nas versões mais antigas dos sistemas operacionais.
Se você pretende oferecer suporte ao iPhone e não ao iPad, provavelmente espera que a maioria dos usuários atualize para o iOS 13 dentro de 12 a 18 meses (começando com a data de lançamento). Talvez 85-90%? (Acho que a Apple disse que neste momento ainda há 15% das pessoas que não usam o iOS 12). Ainda é um bom tempo, mas você não será capaz de implantar aplicativos SwiftUI imediatamente ou então arriscará alienar muitos usuários.
Também dependendo dos outros 10-15%, isso pode significar muitos usuários (e $$) para você deixados na mesa.
Se você também oferece suporte ao iPad, é mais complicado porque as pessoas não atualizam seus iPads com frequência. Há muitos iPads 2s junto com os iPads de 3ª e 4ª geração ainda disponíveis, que têm apenas 10.3.3 e não podem mais ser atualizados. As pessoas simplesmente não vão se levantar e pagar entre US $ 400 e US $ 1.000 por um novo iPad quando o deles funciona perfeitamente bem.
Sempre há espaço e a necessidade de atualizar o aplicativo, torná-lo melhor, corrigir bugs, que não necessariamente têm nada a ver com o iOS 13. ou seja, encontrar um bug que você não conhecia antes, deixando muitos usuários insatisfeitos. não na versão mais recente do iOS. e nem mesmo falamos sobre clientes corporativos / corporativos que muitas lojas de desenvolvimento suportam. há muito mais resistência nas atualizações do iOS por vários motivos nessa área.
Portanto, antes de ficar todo empolgado com o iOS 13 e o SwiftUI (o que você deve, porque é incrível), de volta ao mundo real, fora do Vale do Silício, isso não vai exatamente se alinhar com o que o consumidor médio espera e você precisará oferecer suporte dispositivos mais antigos e precisam porque há muitas pessoas que você estaria alienando.
Com base na documentação da Apple, ele está disponível apenas a partir do iOS 13, infelizmente.
É compatível com iOS 13+. Aqui está o link para sua documentação.
https://developer.apple.com/documentation/swiftui/
Mesmo o Xcode 10 não o suporta. Você precisa usar o Xcode 11, que está em beta em (3 de junho de 2019). https://developer.apple.com/tutorials/swiftui/creating-and-combining-views
só funciona para ios 13 ou posterior
você ainda pode anexar seu SwiftUI
código usando
@available(iOS 13.0, *)
se você ainda usa o Xcode abaixo do Xcode 11 e tem o código SwiftUI, pode envolvê-lo com
#if canImport(SwiftUI)
...
#endif
Isso pode corrigir o problema ao compilar com Xcode abaixo de Xcode 11
Como todos disseram, não será compatível com versões anteriores do iOS. Mas dado que a Apple tem uma base de instalação consistente de seu iOS mais recente, e também dado que o iOS 13 requer iPhone 6S ou posterior, iPad Air 2 ou posterior, o novo iPad mini 4 e iPhone SE. A grande maioria dos usuários será capaz de instalar o iOS 13 e desfrutar de aplicativos SwiftUI adoráveis.
Como todas as pessoas antes de mim mencionaram, é muito claro que exigirá o iOS 13 ou posterior. Mas, como um novo desenvolvedor de iOS, estava preocupado em até que ponto deveria adotar o SwiftUI em comparação com o UIKit. Já construí alguns pequenos projetos com o UIKit e fui a algum lugar avançado com ele.
Mas quando o SwiftUI começou, como combinar os dois. O artigo no link a seguir coloca tudo em contexto: https://www.hackingwithswift.com/quick-start/swiftui/answering-the-big-question-should-you-learn-swiftui-uikit-or-both
Minha única preocupação agora é que percebi com o Xcode 11 que um projeto Xcode não pode combinar Storyboards e SwiftUI.
Infelizmente não, o SwiftUI só é permitido no iOS 13 e superior. Ele foi introduzido na estrutura do iOS 13. Antes do iOS 13, tudo era construído usando a estrutura Obj-C (incluindo Swift).
No lado direito da documentação dev, ele mostra as versões suportadas de iOS, macOS, tvOS, watchOS, etc.
https://developer.apple.com/documentation/swiftui/
Espero que isto ajude!