Concrete Logo
Hamburger button

Swift 1.2 e Xcode 6.3 cheios de novidades

  • Blog
  • 21 de Abril de 2015
Share

Quem achou que o lançamento do Swift 1.2 iria demorar felizmente estava enganado. Como só estava disponível no Xcode 6.3 e o 6.2 saiu há poucas semanas, era de se esperar que o 6.3 não sairia tão rápido. O lançamento da nova versão mostra que, apesar de ser uma linguagem nova, Swift tem bases sólidas. Claro que, considerando o tamanho do ecossistema Apple, pode ser que apareçam situações que não foram previstas pelos engenheiros.

Vamos às alterações:

  • Build incremental: as classes que não sofreram alterações não serão mais recompiladas, acelerando o processo de build;
  • Executáveis mais rápidos: os builds de debug estão bem mais rápidos e os builds de release agora são feitos com otimizações que melhoraram a performance consideravelmente;
  • Melhoria nos Erros de Compilação: mensagens de erro e avisos estão mais claras, e agora o compilador exibe a opção de autoajuste (Fix-It) em mais casos;
  • Melhorias de Estabilidade: as quebras mais comuns foram solucionadas. Muitos dos avisos relacionados ao SourceKit também foram removidos.

Vamos ver um pouco de código novo. Lembrando que tem muita coisa para falar, mas vamos tentar elencar somente as mais relevantes.

Primeiro ponto: anteriormente, para fazer “cast” com o Swift usávamos somente o comando “as”, da seguinte forma:

Neste caso, não havia a necessidade de usar o optional. O problema é que em alguns casos isso pode gerar uma quebra em execução. Para manter a linguagem segura e garantir um comportamento previsível, agora temos o operador as!

Com o Swift 1.2, o mesmo exemplo ficaria assim:

Nesse novo modelo, o operador as faz uso do optional para validar se realmente teremos valor ou não. No primeiro caso, nós declaramos que o nosso cast será feito com sucesso, porque eu sei que virá uma string. No segundo caso foi o contrário: não temos certeza que será uma String e caso não seja ele nem validará o nosso if, evitando erros em execução.

Segundo ponto: antes do Swift 1.2, fazer validações com if era algo quase hercúleo. Imagine que teremos que validar, por exemplo, se quatro itens têm algum valor:

Quanta coisa, não? Parece até meio estúpido fazer algo assim. Para nossa sorte, a Apple percebeu esse tipo de coisa e fez algo muito melhor e menos verboso. Agora, temos o que chamamos de “optional binding“, que funciona assim:

Não ficou mais simples? E assim como o where na validação, poderíamos colocar outros itens.

Uma observação: o uso do tipo let não é obrigatório, mas uma recomendação da própria Apple.

Terceiro ponto: inicializar ou não itens do tipo let. Antes do Swift 1.2, éramos obrigados a sempre dar algum valor na sua inicialização. Agora ainda damos valor, mas pode ser “após”:

Por algum motivo, você pode querer acessar a constante antes da validação e dar erro de execução. Por isso, não é recomendado usar esse recurso.

E por enquanto é isso! Na parte do XCode, os principais ajustes foram feitos na performance e em problemas de crash, mas ainda tem muitas coisas sendo adicionadas e corrigidas. Não se assuste com as mudanças, principalmente dos operadores as. 

Assim que você abrir um código feito antes do Swift 1.2 no Xcode 6.3 aparece uma ferramenta para “migrar” seu código para as novas formas, garantindo que ele fique atualizado com as novas práticas.

Continuo afirmando que a linguagem não está retirando ou deixando algo depreciativo. Está segura e melhorando a cada dia. Vivemos em um mundo conectado e em constantes mudanças, por isso prefiro passar longe de linguagens que não são atualizadas. Para mim, Swift veio para ficar!

Concorda, discorda ou tem alguma observação? Aproveite o campo abaixo!