() translation by (you can also view the original English article)
Se você esta lendo este artigo, há chances de você ter ouvido falar na nova linguagem de programação chamada Swift. A Apple liberou o Swift durante este ano na WWDC, a Conferência Anual de Desenvolvedores da empresa e para a maioria de nós, ela veio como uma completa surpresa. A ultima coisa que os desenvolvedores estavam esperando da marca era uma nova linguagem de programação para alimentar a próxima geração de aplicações do iOS e OS X.
O Swift fará você se sentir familiarizado se você estiver usando o Objective-C para desenvolver aplicações em iOS ou OS X, mas existem algumas diferenças importantes. Você também terá que se familiarizar com a sintaxe elegante e moderna de Swift. Vou começar esta série mostrando-lhe em que modo Swift difere de Objective-C e por que essas diferenças são uma coisa boa. Vamos começar.
1. Pré-requisitos
Programação
Ao longo desta série, vou fazer referências de Objective-C e comparar a linguagem de programação Swift com Objective-C. No entanto para acompanha-lá não é necessário estar familiarizado com o Objective-C.
Dito isto, é importante que você tenha experiência com uma linguagem de programação. Embora esta série se concentre em Swift, não cobrirá os conceitos básicos de programação. Espero que você esteja familiarizado com variáveis, constantes, funções, controle de fluxo e programação orientada a objeto.
Se você estiver familiarizado com Objective-C, Java, Ruby, PHP ou JavaScript, então você não terá dificuldades em compreender os conceitos explicados nesta série. Na verdade, você vai aprender rapidamente que Swift compartilha semelhanças com muitas linguagens de programação populares, incluindo o Objective-C.
Xcode
O Swift é suportado somente pelo Xcode 6 e você precisa instalar a versão mais recente do IDE da Apple (Ambiente de Desenvolvimento Integrado) para acompanhar. Você também pode baixar o Xcode na App Store ou na Central de Desenvolvimento da Apple.
2. Swift
Comparado com Objective-C ou Java, o Swift é uma linguagem expressiva, sucinta que muitas vezes lembra-me Ruby e JavaScript. Mesmo que o criador do Swift, Chris Lattner, tenha se inspirado em outras linguagens, o Swift é uma linguagem que se destaca por si própria.
Como você deve saber, Objective-C é um superconjunto estrito de C. O Swift, no entanto, não é. Apesar de Swift usar chaves e compartilhar de um número de palavras-chave com a linguagem de programação C,o Swift não é compatível com C.
O Swift é uma linguagem de programação moderna e intuitiva, especialmente se você está acostumado com Java ou linguagens de programação baseadas em C como Objective-C. Durante o desenvolvimento e design de Swift, Chris Lattner focou em uma série de características chaves que acabaram definindo a linguagem.
Segurança
Segurança é um dos fundamentos do Swift. Você vai aprender rapidamente que Swift é muito diferente de Objective-C, em termos de segurança, e isso afetará diretamente o código que você escreve. Se você já trabalhou com Objective-C, então levará algum tempo para se acostumar com isto.
LLVM
Chris Lattner também projetou o compilador LLVM (Máquina Virtual de Baixo Nível) e não deve ser surpresa que o Swift é construído com um compilador LLVM. O resultado é velocidade, potência e confiabilidade. O Swift é significativamente mais rápido que Objective-C, na maioria dos cenários. Leia este artigo do Jesse Squires, se você estiver interessado nos detalhes essenciais.
Inferência de Tipo
Segurança de tipo é uma das principais características do Swift. O Swift inspeciona seu código em tempo de compilação e avisa sobre incompatibilidades de tipo. Isto significa que você pode capturar erros mais cedo, evitando uma série de erros comuns.
Felizmente, o Swift ajuda você com isto. O Swift, muitas vezes é inteligente o suficiente para atribuir o tipo de variáveis e constantes, o que significa que você não precisa declarar explicitamente o tipo de cada variável e constante. No trecho de código a seguir, podemos declarar uma variável a
e atribuir o valor "this is a string"
para ela. O Swift é inteligente o suficiente para inferir que a
é do tipo String
.
1 |
var a = "this is a string" |
Este é um exemplo trivial, mas você vai aprender rapidamente que o Swift também pode lidar com cenários mais complexos.
Variáveis e Constantes
Constantes são úteis em C e Objective-C, mas a maioria dos desenvolvedores utiliza com moderação. Em Swift, constantes são tão importantes e comuns como variáveis. Se o valor de uma variável não muda, então, essa variável deve ser uma constante. Variáveis são declaradas usando a palavra-chave var
enquanto constantes são declaradas usando a palavra-chave let
.
1 |
var a = 1 // variable |
2 |
let b = 1 // constant |
Isso não apenas faz melhorar a intenção, como também melhora a segurança, evitando que o valor da variável seja alterado por acidente. Vamos dar um olhar mais atento em variáveis e constantes, um pouco mais tarde neste artigo.
Ponto e Vírgula
No Swift, ponto e vírgula não é necessária. Você pode usar o ponto e vírgula, por exemplo, para escrever várias declarações na mesma linha, mas eles não são necessários. Dê uma olhada no exemplo a seguir para entender melhor o conceito.
1 |
var a = 1 |
2 |
var b = 2 |
3 |
|
4 |
var c = 1; var d = 2; |
Saibam que nós mal arranhamos a superfície. Você vai aprender sobre muito mais recursos e conceitos ao longo desta série. Em vez de sobrecarrega-lo com mais teoria, sugiro que molhe seus pés e escreva algum código. Isso nos leva a uma das melhores características de Xcode 6, playgrounds.
3. Playgrounds
No Xcode 6, a Apple introduziu os playgrounds. O playground é a ferramenta perfeita para aprender Swift. O playground é um ambiente interativo no qual você pode escrever em Swift e ver imediatamente o resultado. Não só torna a aprendizagem de Swift mais divertida, como é muito mais rápido e mais intuitivo do que a criação de um projeto no Xcode.
Na verdade, é tão fácil que podemos entrar e criar nosso primeiro playground. Abra o Xcode 6 e selecione New > Playground... do menu File. Nomeie o playground e defina a Platform para iOS.



Diga ao Xcode onde você gostaria de salvar o playground e clique em Create. Em vez de criar uma pasta com um monte de arquivos e pastas, um playground é nada mais do que um arquivo com uma extensão .playground.
A interface de usuário com que você é apresentado não podia ser mais simples. À esquerda, você vê um editor de código com um comentário no topo, uma instrução de importação para importar o framework UIKit e uma linha de código que não deve ser muito difícil de compreender. À direita, você vê a saída ou os resultados gerados pelo código à esquerda.



Vamos parar um momento para entender o código em nosso novo playground. A primeira linha deve parecer familiar se você já trabalhou com Objective-C, PHP ou JavaScript. Comentários em Swift começam com duas barras ou, no caso de comentários de várias linhas, começam com /*
e terminar com */
.
Como nós selecionamos iOS como plataforma quando criamos o playground, o Xcode adicionou uma instrução de importação para o framework UIKit. Isso nos dá acesso a cada classe e constante declarada neste framework.
A terceira linha parece familiar, mas há algumas coisas que precisamos esclarecer. Declaramos uma variável str
e atribuímos uma string para ela. Esta linha de código é fácil de entender, mas observe que o nome da variável é precedido da palavra-chave var
ao invés do tipo da variável, como seria de esperar em Objective-C. A mesma instrução em Objective-C seria parecido com isto:
1 |
NSString *str = @"Hello, playground"; |
Em Objective-C, teríamos substituído o var
pelo tipo da variável, iniciado a string com um símbolo @
e finalizar a declaração com um ponto e vírgula. É importante entender que a palavra-chave var
não substitui o especificador de tipo em Objective-C. Não é nada mais do que uma palavra-chave para indicar que a str
é uma variável em oposição a uma constante. Deixa-me explicar mais detalhadamente. Adicione a seguinte linha de código no playground.
1 |
let hello = "Hello, playground" |
A palavra-chave let
diz ao compilador que hello
é uma constante, não uma variável. Ambos str
e hello
são do tipo String
, mas str
é uma variável enquanto hello
é uma constante. A diferença é simples de entender, adicionando mais duas linhas de código.
1 |
str = "This is a variable." |
2 |
hello = "This is a constant." |
Atribuir um novo valor para str
não é um problema. No entanto, atribuir um novo valor para hello
, resulta em um erro. O Xcode nos diz que não é possível atribuir um novo valor para hello
, porque hello
é uma constante, e não uma variável. Esta é outra característica fundamental do Swift, que pode levar um tempo para se acostumar.



A idéia é simples. Se o valor de uma variável não vai mudar, então deve ser uma constante em vez de uma variável. Enquanto isto pode parecer um detalhe semântico, eu garanto que fará seu código mais seguro e menos propenso a erros. Esteja preparado, porque você vai ver a palavra-chave let
muito nesta série.
Nós vamos usar playgrounds consideravelmente ao longo desta série, porque é uma ótima maneira de aprender a linguagem. Existem algumas outras características poderosas do playground que ainda não abordamos, mas primeiro precisamos entender o básico da linguagem Swift antes de podermos nos beneficiar deles.
Aprenda mais em nosso Curso de Programação Swift
Se você está interessado em elevar seu aprendizado em Swift para o próximo nível, você pode dar uma olhada no nosso curso completo de desenvolvimento em Swift.
Este primeiro exemplo de aula entra um pouco mais detalhadamente sobre o que são os playgrounds e algumas das suas características mais úteis!
Conclusão
Ainda tenho que encontrar um desenvolvedor que não gostou de Swift e isso quer dizer alguma coisa. Swift tem um número de conceitos que exigem um pouco para se habituar, mas estou bastante confiante de que você também vai acabar gostando de Swift, apreciando o seu poder, elegância e concisão. Na próxima edição desta série, começamos a explorar os conceitos básicos de Swift.