Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Swift
Code

O Que Esperar da Swift 3

by
Length:MediumLanguages:

Portuguese (Português) translation by Erick Patrick (you can also view the original English article)

Provavelmente, já sabemos que Swift 3 chega no final do ano. É o primeiro lançamento que incorpora o árduo trabalho de uma comunidade fantástica. Várias propostas foram enviadas desde que a Apple abriu seu código em 2015 e várias delas foram aceitas após consideração cuidadosa pela time base. Nesse artigo, veremos algumas mudanças importantes na Swift 3.

Do Que Se Trata a Swift 3?

O time base tem um objetivo bem claro em mente como lançamento da Swift 3,, criando uma fundação sólida para a linguagem de programação Swift. Na WWDC 2016, Chris Lattner enfatizou que a Swift 3 introduzirá várias alterações problemáticas, com a intenção de ajustar a parte fundamental corretamente. Esse é o tema comum do próximo lançamento. Isso quebrará compatibilidade de recursos existentes, removerá alguns outros e aprimorará a fundação da linguagem.

O projeto evolução da Swift é uma história de sucesso para todos envolvidos na comunidade Swift. O engajamento foi tremendo e o resultado é a Swift 3. Apple é transparente sobre o processo de lançamento e versões de teste da Swift 3 estão disponíveis no site e inclusas no Xcode 8, que está em beta no momento da escrita desse artigo.

Mais que Swift

O lançamento da Swift 3 não foca apenas na linguagem em si, também inclui mudanças substanciais ao conjunto de ferramentas, biblioteca padrão, e a interoperabilidade com Cocoa. A Swift é muito mais que uma linguagem. Quando falamos de Swift, pensamos apenas na linguagem, mas também incluir a biblioteca padrão e o gerenciador de pacotes.

Compatibilidade de Fonte

Se já trabalhamos com Swift, preceberemos que migrar o código de uma versão para outra não é simples. Infelizmente, migrar projetos para Swift 3 não será diferente.

Dito isso, o objetivo principal da Swift 3 é garantir a transição da Swift 3 para versões futuras da linguagem não sejam assim. Compatibilidade de código é o ponto chave da Swift 3.

Maravilhas

Swift foi projetada para ser uma linguagem moderna, mas era igualmente importante criar uma linguagem que parecesse legal e, bem, fosse maravilhosa. Com Swift 3, a equipe continua a "otimizar a linguagem para maravilhas", como Chris Lattner diz.

Enquanto há várias mudanças problemáticas, o resultado final é uma linguagem que parece e é ótima. Swift 3 é ótima de usar. As mudanças na Core Graphics e Grand Central Dispatch, que discutiremos logo, são ótimos exemplos.

O Que Muda?

Chega de falar o quão maravilhosa é a Swift e o quão melhor a Swift 3 será. No resto desse artigo, focaremos em alguns aspectos chaves introduzidos nela. Tenhamos em mente que a Swift 3 continua a evoluir até o lançamento no final do ano.

API

Legibilidade

Muito tempo e energia foram gastos aprimorando a API da Swift. As mudanças são significativas, não tem como negar. Mas o resultado é muito bom. Com Swift 3, o time base busca uma API que foca na legibilidade e acessibilidade.

Enquanto vários de nós estão acostumados com a verbosidade da Objective-C, a nova API da Swift segue uma abordagem diferente ao enfatizar e focar no essencial. Vejamos os exemplos a seguir da Swift 2.2.1. Esse exemplo deve ser familiar se tem trabalhado com Swift há um tempo... ou com Objective-C.

Na Swift 3, esse código é um pouco diferente, como vemos abaixo:

A comunidade Swift percebeu que não é preciso incluir uma referência sobre o que será apresentado desde que a informação já esteja inclusa no primeiro parâmetro. Como resultado, os nomes do métodos estão mais legíveis e concisos. Um aprimoramento claro, se nos perguntarem.

É um tópico comum na Swift 3. Várias propostas que foram aceitas e inclusas nela focam na simplificação e remoção de "sujeira" da linguagem. A API da Swift foi muito influenciada, inicialmente, pela verbosidade da Objective-C. Legibilidade é ótimo, mas a Swift 3 corta a verbosidade sem comprometer a legibilidade.

A comunidade acredita que o projeto de uma API sempre deveria levar em consideração seu uso e isso é visível nas mudanças introduzidas na Swift 3. Temos de convir que a nova API parece—e está—ótima.

Rótulação de Parâmetros

Outra mudança importante que vários desenvolvedores agradeceram foi a consistência da assinatura de funções e método, incluindo o rótulo do primeiro parâmetro por padrão. Isso é o que parece na Swift 2.2.1. Por padrão, o rótulo do primeiro parâmetro é omitido quando a função é invocada.

Isso não é mais verdade na Swift 3. O primeiro parâmetro não mais recebe tratamento especial, o que é muito bom.

Por essa mudança, podemos aprimorar o exemplo acima omitindo a referência à visão no nome da função.

Importar como Membro

Trabalhar com APIs da C na Swift sempre foi estranho. Funções da Core Graphics, por exemplo, são importadas como funções globais, o que não é uma ótima solução e, como resultado, usar a Core Graphics na Swift não é legal.

O mesmo se aplica à Grande Central Dispatch No próximo exemplo, usamos a Grand Central Dispatch para despachar assincronamente uma tarefa para uma fila de plano de fundo.

Na Swift 3, a API parece muito mais com a API nativa da Swift. Funções são importadas como métodos, resultando na sintaxe a seguir de Swift 3.

Remoção de Recursos

A comunidade também concordou na remoção de vários recurso, alguns criaram discussões acaloradas. Gostaríamos de apontar quatro delas.

Laços for no Estilo de C

Isso parece familiar?

Laços for no estilo de C não estão mais disponíveis. Espere... O Quê? Por que? Essa é uma ótima pergunta. Podemos ler a proposta, submetida por Erica Sadun, no GitHub. Isso nos leva à próxima mudança controversa.

Adeus aos ++ e --

Após a abertura da Swift, Chris Lattner, criador da linguagem, submeteu uma proposta pela remoção dos operadores de incremento e decremento da linguagem. Na proposta, ele menciona que esses operadores foram adicionados "sem muita consideração", nas versões iniciais. Para limpar a API da Swift e evitar confusão, ++ e -- não estão mais disponíveis.

Não entre em pânico! A solução é simples. Não se aflija.

Nada Mais de Parâmetros var

Conhecendo as funções da Swift, sabemos que os parâmetros de uma função são constantes por padrão. Podemos mudar esse comportamente precedendo o nome do parâmetro com a palavra-chave var. Para parâmetros variáveis, uma cópia variável do parâmetro é passado para a função.

Mas como isso difere de parâmetros marcados como inout? Certo. Isso é exatamente o que muito de nós temos nos perguntado e a motivação para a remoção dos parâmetros variáveis da linguagem.

Da perspectiva da função, não há diferença, isso é, a função recebe uma cópia local mutável do valor do parâmetro. Como o nome implica, contudo, parâmetros marcados como inout sobrescrevem seus valores na variável original.

Para evitar confusão, parâmetros var não estão mais disponíveis na Swift 3. Felizmente, inout ainda existem.

Falando nisso, na Swift3, a palavra-chave inout é integrada na sintaxe de tipos de parâmetros de função. Vejamos os exemplos a seguir para entender melhor essa mudança.

Descompatação Implícita de Tuplas

Embora Swift ainda seja nova, há diversas recursos muito avançados. Saia que podemos passar uma tupla para uma função ao invés de uma lista de parâmetros? Não é preciso se animar, porém. Esse recurso será removido da Swift 3.

Chris Lattner refere-se a esse comportmente como "bonitinho" na sua proposta de remoção dela. Embora seja útil de tempos em tempos, parece ter várias consequências. O motivo de mostrar essa proposta é destacar o principal objetivo do time base: simplificar a sintaxe e a API da linguagem.

O recurso parece interessante no começo, mas com o crescimento da linguage e complexidade, e mais pessoas usando-a, recursos como esse agregam pouco à linguagem, em troca de uma lista de complicações, incluindo problemas de performance durante compilação e complexidade ao verificador de tipo que poderia ser evitado pela omissão do recurso.

O Que Acontece com Swift 2.3?

Semana passada, falamos sobre o Xcode 8. Lá, mencionamos que ele suporta tanto Swift 2.3 quanto Swift 3. Mas o que é a Swift 2.3 e como se compara à Swift 2.2?

Swift 2.3 é uma atualização menor mas importante. A principal diferença para Swift 2.2.1, inclusa no Xcode 7.3.1, é compatibilidade com as SDKs do novos sistemas operacionais da Apple: iOS 10, tvOS 10, watchOS 3, macOS Sierra (10.12).

Isso significa que podemos usar e construir coisas com as novas SDKs sem ter de usar Swift 3. Com Xcode 8, podemos enviar aplicações para App Store usando Swift 2.3 ou 3. A equipe da Swift sabe e entende que a migração para a 3 causa impacto significativo em projetos existentes. Swift 2.3 garante que a migração dos nossos projetos quando acharmos ser a hora.

Ferramentas

O que também gostamos do projeto Swift é que as ferramentas são desenvolvidas junto da linguagem. Isso significa que as ferramentas também recebem atualizações substanciais quando Swift 3 for lançada.

Documentação

Durante a WWDC, já vimos rapidamente as mudanças feitas na documentação. Embora pareça trivial, já consideramos quanto tempo gastamos navegando por documentação? Gostamos muito de coisas assim e apreciamos os esforços da equipe em tornar a documentação acessível. As mudanças são ainda mais dramáticas no Xcode 8 que o escrito semana passada.

Xcode

Por hora, a maioria dos desenvolvedores da Swift usam Xcode como sua IDE. Iss pode mudar no futuro de acordo que a linguagem ganhe tração em outras platformas. Google não tinha planos de usar Swift no Android?

No Xcode 8, a integração com Swift foi aprimorada. Navegar pela bibliotea padrão, por exemplo, é mais intuitivo. Em uma das sessões da WWDC 2016, Ewa Matejska ilustra como as interfaces sintetizadas são agora mais intuitivas e fáceis de entender. Isso torna a navegação pela biblioteca padrão menos assustadora.

Isso nos traz a compilação e otimização. Talvez tenhamos ouvido de otimização de módulo inteiro. Esse recurso está habilitado por padrão no Xcode. Ele impacta a performance da aplicação e a Apple recomenda esse recurso habilitado na produção. Se quisermos aprender mais sobre otimização de módulo inteiro, recomendamos a leitura desse artigo de Keith Harrison.

Enquanto essa otimização de módulo inteiro aumenta o tempo de compilação ao criar o projeto pela primeira vez, os resultados valem à pena. Construções subsequentes são menos impactadas graças a compilção incremental.

Conclusão

Swift 3 é um grande lançamento para todos envolvidos na comunidade. Mesmo não gostando de mudanças problemáticas, a direção que a linguagem esta tomando está fcando mais clara, tornando a plataforma robusta e pronta para mudanças futuras sem comprometer compatibilidade do código fonte.

Nesse artigo, destacamos algumas das mudanças mais importante que devemos esperar na Swift 3. Para uma lista completa das mudanças, encorajamos visitar o guia de migração no site da Swift.

Também podemos ver a evolução do projeto da Swift no GitHub para ver mais propostas que foram aceitas e outras que ainda estão sob trabalho. Não tenhamos medo. As propostas, geralmente, são fáceis de entender. Na verdade, o objetivo do projeto da evolução da Swift é para todos serem capazes de adicionar algo à discussão. O que impede você?

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.