Novidades no Swift 5.3

Lia Kassardjian
Apple Developer Academy | Mackenzie
4 min readJan 27, 2021
Photo by Maxwell Nelson on Unsplash

Durante a WWDC 2020, a Apple anunciou as novidades da mais nova versão da linguagem Swift. Nesse artigo, vamos dar uma olhada nas principais novidades e em como elas influenciam o desenvolvimento em Swift.

Performance em tempo de execução

As primeiras mudanças notáveis na versão 5.3 estão nas melhorias de performance da linguagem em tempo de execução.

Em comparação com Objective-C, Swift é um enorme avanço termos de tamanho de código e, desde a introdução do SwiftUI em 2019, agora podemos construir aplicativos com um número ainda menor de linhas de código.

Consumo de memória

Além do código continuar ficando cada vez mais enxuto em Swift, notamos ue a versão 5.3 traz grandes melhorias em termos de consumo de memória.

Desde a primeira versão, Swift trouxe grandes avanços no armazenamento de dados em comparação com Objective-C, uma vez que esta linguagem usava, basicamente, ponteiros para armazenar as instâncias criadas, enquanto aquela já era uma linguagem que economizava no uso de ponteiros e, portanto, os objetos ocupavam menos espaço em memória.

Ainda assim, Swift ocupava, em tempo de execução, um grande espaço de memória por conta de sobrecarga. Na versão 5.3 o espaço em memória ocupado em tempo de execução foi consideravelmente reduzido.

Essa mudança é difícil de ser observada no desenvolvimento de alto nível, mas fica evidente em pacotes e APIs de baixo nível, que exigem muito das capacidades de memória do dispositivo.

Experiência do desenvolvedor

O Swift 5.3 vem também com melhorias no diagnóstico e tratamento de erros em seu compilador.

Diagnóstico

O diagnóstico de erros no código está, agora, muito melhor. Os erros são descritos de forma muito mais precisa, indicando onde o erro foi encontrado e o que era esperado encontrar no código. Além disso, as opções de correção do erro estão melhores e ajudam ainda mais o programador a consertar erros de compilação no seu código.

Completude do código

As ferramentas de preenchimento de código estão mais completas e informam, com maior precisão, quais dados podem ser inseridos. A velocidade também foi aumentada para até 15x mais em comparação com a versão 5.2.

Indentação de código

Foram feitas, também, melhorias em cadeias de chamadas de métodos, cadeias de argumentos, tuplas, coleções em múltiplas linhas e estruturas como if, guard e while em múltiplas linhas.

Na última versão, alguns modificadores em SwiftUI poderiam ficar com indentações fora do padrão, mas são, agora, ajustados corretamente.

Suporte para múltiplas plataformas

Com a intenção de expandir Swift para outras áreas além do desenvolvimento de aplicativos para as plataformas Apple, a empresa continua a atualizar o suporte à linguagem em outros sistemas operacionais, sendo eles:

  • Ubuntu 16.04, 18.04, 20.04
  • CentOS 8
  • Amazon Linux 2
  • Windows (em breve)

Linguagem

Foram feitas, também, atualização na sintaxe do aplicativo, a fim de tornar o código mais legível e ainda mais enxuto. Vamos ver aqui algumas dessas atualizações.

Sintaxe de cadeias de múltiplas closures

Até então, métodos com múltiplas closures não permitiam o encapsulamento delas, porque isso dificultava o entendimento do código. No Swift 5.3, podemos inserir múltiplas closures em seguida com encapsulamento.

@main

Todo programa deve ter um ponto de início. A funcionalidade conhecida anteriormente como @UIApplicationMain foi generalizada para simplesmente @main.

Assim, o ponto de entrada de uma aplicação é delegada, através do @main.

Aumento na disponibilidade de self implícito em closures

Antes, dentro de closures, era sempre necessário indicar o escopo das variáveis com self. Agora, em Swift 5.3, podemos declarar self uma única vez na closure para incluir as variáveis do escopo maior:

Cláusulas catch com multi-padrões

Era necessário, em versões antigas de Swift, incluir cláusulas switch dentro de cláusulas catch. Agora, a gramática de catch foi estendida para que diferentes situações sejam tratadas diretamente no do-catch:

Melhorias nos DSL embutidos

Agora, é possível utilizar estruturas if-let e switch dentro de estruturas do SwiftUI, por exemplo:

Também não é mais necessário especificar @SceneBuilder para a construção da interface em SwiftUI:

Conclusões

Percebemos que a Apple tem investido cada vez mais para melhorar a eficiência da linguagem Swift e torná-la ainda mais simples, de modo a permitir que ainda mais pessoas possam programar e construir aplicativos incríveis a partir de Swift.

Swift é realmente uma linguagem muito poderosa e com um futuro promissor, não só para o desenvolvimento de aplicativos.

Referências

--

--