Quando a Apple lançou o SwiftUI alguns anos atrás, foi um grande passo para implementação de interfaces de usuário em todos os tipos de dispositivos fabricados pela Apple. Desde o início, gostamos da abordagem declarativa e centrada no código, além do modelo de programação reativa fornecido pelo Combine. Percebemos, no entanto, que escrever muitos testes de visualização, o que ainda é necessário com um padrão de modelo-visualização-modelo de visualização (MVVM), não era realmente sensato com o framework de automação XCUITest fornecido pela Apple. Essa lacuna foi fechada pelo ViewInspector. Um obstáculo final foi a versão mínima do sistema operacional necessária. No momento do lançamento, apenas as versões mais recentes do iOS e do macOS podiam executar aplicativos escritos com SwiftUI, mas devido à cadência regular de atualizações da Apple, os aplicativos SwiftUI agora podem ser executados em praticamente todas as versões do macOS e do iOS que recebem atualizações de segurança.
A Apple deu um grande passo adiante com seu novo framework SwiftUI para implementação de interfaces de usuário nas plataformas macOS e iOS. Gostamos do fato de que o SwiftUI vá além da relação um tanto estranha entre o Interface Builder e o Xcode, e adote uma abordagem coerente, declarativa e centrada no código. Agora você pode visualizar seu código e a interface visual resultante lado a lado no Xcode 11, criando uma experiência de desenvolvimento muito melhor. O framework SwiftUI também se inspira no mundo do React.js, que dominou o desenvolvimento web nos últimos anos. Valores imutáveis nos modelos de exibição e um mecanismo de atualização assíncrona criam um modelo de programação reativa unificada. Isso fornece às pessoas desenvolvedoras uma alternativa totalmente nativa a frameworks reativos semelhantes, como React Native ou Flutter. O SwiftUI representa definitivamente o futuro do desenvolvimento da interface de usuário da Apple e, apesar de novo, demonstrou seus benefícios. Temos tido uma ótima experiência com ele — e sua curva de aprendizado superficial. Vale a pena notar que você deve conhecer o caso de uso do seu cliente antes de usar o SwiftUI, pois ele não suporta iOS 12 ou inferior.
A Apple deu um passo enorme em direção ao seu novo framework SwiftUI para implementar interfaces de usuário em plataformas macOS e iOS. Gostamos do fato de que SwiftUI vai além da relação um tanto quanto deselegante entre Interface Builder e XCode e adota uma abordagem coerente, declarativa e centrada no código. Você agora pode ver seu código e a interface visual resultante lado a lado no XCode 11, tornando a experiência de desenvolvimento muito melhor. O framework SwiftUI também traz inspiração do mundo do React.js, que tem dominado o desenvolvimento web nos últimos anos. Valores imutáveis em modelos de visualização e um mecanismo de atualização assíncrono criam um modelo de programação reativo unificado. Isso dá às pessoas desenvolvedoras uma alternativa totalmente nativa para frameworks reativos similares, tais como React Native ou Flutter. Apesar de SwiftUI definitivamente representar o futuro do desenvolvimento UI da Apple, é bem novo e levará tempo para lapidar as arestas. Esperamos por uma documentação melhorada e uma comunidade de pessoas desenvolvedoras que possa estabelecer um conjunto de práticas para testes e abordar outras preocupações de engenharia.