Pessoal, alguém sabe por que minha resposta excluída por @ Jean-François Fabre
CrazyPro007
10
NÃO, o SwiftUI não funciona com iOS 12.x e anteriores.
ystack
Respostas:
89
Acabei de verificar no Xcode 11 e posso confirmar que não será compatível com versões anteriores, como pode ser visto na Viewimplementaçã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(iOS13.0,OSX10.15, tvOS 13.0,watchOS6.0,*)publicprotocolView:_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.associatedtypeBody:View/// Declares the content and behavior of this view.var body:Self.Body{get}}
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.
Ele pode ser compatível
O Swift 5.1 ainda não foi lançado e SwiftUIusa 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 SwiftUIe a Combinemenos 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 .
alguma atualização disso? PR que você mencionou foi mesclado, Swift 5.1 foi lançado
user158
@ user158 Acabei de atualizar a resposta e descrevi por que esse recurso não é compatível.
farzadshbfn
15
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.
É possível usar SwiftUI no iOS 13 ao mesmo tempo em que oferece suporte a um destino de implantação inferior. Verifique stackoverflow.com/a/58372597/840742
Renatus
13
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.
Eu conheço várias pessoas em iPhones "sem suporte", então você nunca vai chegar a 100% para a versão mais recente do iOS. Eu sei que estarei pensando muito sobre meu próximo telefone quando o atual morrer
Gavin
@cspam Embora suas suposições possam ser corretas, elas não respondem à pergunta.
user1892364
O iOS 12 não deixou de oferecer suporte a mais de 10% dos dispositivos, então é difícil dizer se podemos esperar as mesmas taxas de adoção para o iOS 13.
Casper Zandbergen
O SwiftUI precisará oferecer suporte a dispositivos mais antigos e precisa porque há muitas pessoas que você estaria alienando! thumb
Trevor
9
Com base na documentação da Apple, ele está disponível apenas a partir do iOS 13, infelizmente.
Tudo o que a documentação vinculada diz é que você precisa usar o iOS 13 SDK (ou seja, Xcode 11). Isso não significa que a versão iOS mínima suportada do dispositivo deve ser iOS 13 ... você pode suportar versões mais antigas do iOS perfeitamente ...
escalonado
9
É compatível com iOS 13+. Aqui está o link para sua documentação.
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.
Meu iPad não faz o corte para iOS 13, e dado que ainda está forte e vai ser substituído por um tempo (espero) aqui, esperando que os aplicativos que eu gosto / preciso não joguem dispositivos antigos à deriva.
Gavin de
3
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.
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.
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 :fonte
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:
fonte
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.
Ele pode ser compatívelO 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 issoSwiftUI
e aCombine
menos que a Apple diga o contrário. Isso também é mencionado na proposta do DSL :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 .fonte
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.
fonte
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.
fonte
Com base na documentação da Apple, ele está disponível apenas a partir do iOS 13, infelizmente.
https://developer.apple.com/documentation/swiftui/
fonte
É 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
fonte
só funciona para ios 13 ou posterior
você ainda pode anexar seu
SwiftUI
código usandose você ainda usa o Xcode abaixo do Xcode 11 e tem o código SwiftUI, pode envolvê-lo com
Isso pode corrigir o problema ao compilar com Xcode abaixo de Xcode 11
fonte
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.
fonte
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.
fonte
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!
fonte