Transferindo um projeto do Swift 4.2 para o Swift 5.0

Olá Habr! Apresento a você a tradução do artigo "Swift 5.0: Como migrar seu projeto e estruturas" de Antoine Van Der Lee.

O Swift 5.0 foi lançado em março de 2019 e é o primeiro lançamento estável do ABI Swift. Embora muitos recursos abranjam os novos recursos do Swift 5.0, eles geralmente não informam o que você precisa fazer para atualizar seu projeto para o Swift 5.0.

Neste post, abordarei as etapas que você pode executar para atualizar um projeto existente para o Swift 5.0.

Verifique se o seu projeto já foi portado para o Swift 4.2.
Não ficarei surpreso se este artigo ajudar a convencer seu gerente de produto a planejar o tempo para a transição.

Migração automática usando o assistente de migração


O Xcode sugere usar o Assistente de Migração para atualizar automaticamente seu código para a sintaxe Swift atual. Essa conversão usará a versão mais recente do Swift, disponível com a versão instalada do Xcode.

O Xcode 10.2 é a primeira versão a incluir o Swift 5.0, portanto, você precisa usar esta versão do software.

Esse recurso geralmente faz o trabalho duro para você. Portanto, eu recomendo iniciar a porta de código indo em Edit -> Convert -> To Current Swift Syntax ....

Dica: Certifique-se de fazer isso apenas para o seu projeto e estrutura. Você pode pular a conversão para quaisquer dependências externas.



Atualização de Dependência


Provavelmente, você tem algumas dependências do Swift que precisam ser atualizadas. Muitos grandes projetos de código aberto, como Alamofire e Moya, já começaram a trabalhar com a versão Swift 5.0.

No entanto, é provável que nem todas as suas dependências já estejam atualizadas. Embora eu queira exortar você a realizar a transferência e, em seguida, enviar a solicitação de recebimento, você provavelmente precisará esperar um pouco até que os proprietários do projeto façam eles mesmos.

Se você planeja realizar um teste intensivo completo de seu aplicativo após esta transferência, pode valer a pena atualizar também diretamente suas dependências. Seu teste cobrirá essas atualizações diretamente, o que pode ser uma "vitória dupla".

Atualização do ambiente do IC


Se você estiver usando Travis, Jenkins ou qualquer outra plataforma de IC, também precisará atualizar o Xcode.



Usando o resultado no Swift


O Xcode Converter realiza apenas alterações básicas de código. Ele não considera o novo tipo de resultado , que agora está incluído na biblioteca padrão do Swift. Muitas estruturas incluíram o tipo "Resultado" em seu código. Isso pode significar que você possui muitos dados com um tipo de enum que não são mais necessários. No entanto, não se apresse em substituí-los pelos dados de suas dependências: você depende das alterações de código na estrutura externa.

Tipo comum de erro



É provável que o seu tipo "Resultado" atual tenha definido apenas o tipo para o caso apropriado.

O resultado no Swift 5.0 também requer que você determine o tipo de erro esperado. Como cidadão respeitável, você deve tentar concretizar esse tipo de erro, com base no que espera. No entanto, se você deseja acelerar a migração, também pode definir o tipo como Swift.Error .

Dica: se você quiser saber mais sobre o novo tipo de resultado no Swift 5.0, recomendo que você leia este artigo .

Levamos em conta a estabilidade da ABI


De fato, a estabilidade da ABI é uma questão separada. Você pode ler mais sobre isso no blog oficial da Swift.

Lembre-se de que o tamanho do aplicativo que você está baixando diminuirá , pois os aplicativos não precisam mais incorporar a biblioteca Swift padrão!

Isso deve convencer o seu produto a encontrar tempo para transferir.
Se quiser mergulhar mais no Swift 5.0, pule para a postagem do blog Apple Migrating to Swift 5.0.

Source: https://habr.com/ru/post/pt447098/


All Articles