O Que É a Linguagem de Programação Swift? Um Guia Simples da Linguagem por Trás dos Apps de iPhone
Um guia simples e sem jargões sobre o Swift, a linguagem que a Apple criou para apps de iPhone, iPad e Mac. Entenda por que ela substituiu o Objective-C, como os opcionais evitam travamentos, como um app é feito e quão rápido o Swift é.

Nesta página
Quase todo app do seu iPhone, do app do banco aos jogos que você joga no ônibus, foi construído por alguém escrevendo código. Hoje em dia, a maioria dos apps novos para aparelhos da Apple é escrita em Swift, uma linguagem de programação que a Apple lançou em 2014 para deixar a criação de apps mais rápida, mais segura e mais agradável.
Este artigo explica, em linguagem simples, o que é o Swift, por que a Apple o criou, o que o torna mais seguro que a linguagem que ele substituiu e como um app em Swift vai de uma ideia até a App Store.
Antes do Swift: o Objective-C
Por cerca de 30 anos, os apps da Apple foram escritos numa linguagem chamada Objective-C, criada no começo dos anos 1980 acrescentando recursos de orientação a objetos à linguagem C (veja O Que É a Linguagem de Programação C?). A Apple a herdou em 1997, quando comprou a NeXT, a empresa que Steve Jobs fundou depois de sair da Apple.
O Objective-C moveu os primeiros apps de iPhone e a App Store, que abriu em 2008. Mas já mostrava a idade: muitos símbolos, código comprido e, por ser construído sobre o C, os mesmos erros arriscados de memória. Veja a mesma pequena tarefa nas duas linguagens:

O Swift deixa de lado os asteriscos, as arrobas e o ponto e vírgula. Escrever \(nome) dentro de uma frase encaixa um valor ali. E o Swift descobre sozinho que nome guarda um texto e frutas guarda uma lista, então você não precisa dizer.
Um projeto secreto
Em 2010, um engenheiro da Apple chamado Chris Lattner começou a projetar uma nova linguagem nas horas vagas. Lattner já era famoso entre os programadores: quando era estudante universitário, ele criou o LLVM, um kit de ferramentas para construir compiladores que hoje move muitas linguagens de programação.
O projeto paralelo dele virou uma equipe secreta dentro da Apple. Quando a Apple apresentou o Swift na sua conferência de desenvolvedores, em junho de 2014, quase todo mundo foi pego de surpresa. Um ano depois, em 2015, a Apple tornou o Swift código aberto, livre para qualquer pessoa usar e melhorar, e ele passou a rodar também no Linux.
Como é o Swift
Veja o clássico primeiro programa:
print("Olá, mundo!")Uma linha. E aqui está um pequeno carro, descrito com uma struct (um pacote de valores com nome e habilidades):
1struct Carro {
2 var cor: String
3 var velocidade = 0
4
5 mutating func acelerar() {
6 velocidade += 10
7 }
8}
9
10var meuCarro = Carro(cor: "vermelho")
11meuCarro.acelerar()
12meuCarro.acelerar()
13print("O meu carro \(meuCarro.cor) anda a \(meuCarro.velocidade) km/h")Isso mostra O meu carro vermelho anda a 20 km/h. O Swift usa let para valores que nunca mudam e var para valores que podem mudar, e incentiva usar let sempre que possível, para que menos coisas mudem sem querer.
Separar os adultos de uma lista de pessoas parece quase uma frase:
1let adultos = pessoas
2 .filter { $0.idade >= 18 }
3 .map { $0.nome }
4 .sorted()
5
6print(adultos.joined(separator: ", ")) // Maria, PedroFilter (filtrar) as pessoas com 18 anos ou mais, map (transformar) cada uma no seu nome, sorted (ordenar) os nomes. (O $0 é o atalho do Swift para "o item atual".)
Opcionais: a resposta do Swift ao travamento da "caixa vazia"
Um dos motivos mais comuns de travamento de apps é tentar usar um valor que não existe: um apelido que nunca foi definido, uma foto que não baixou, um usuário que não fez login. Muitas linguagens representam o "nada" com um valor vazio especial, muitas vezes chamado de null ou nil, e usá-lo sem querer derruba o programa. O inventor dele, Tony Hoare, mais tarde o chamou de seu "erro de um bilhão de dólares".
O Swift enfrenta isso com os opcionais. Um valor que pode estar faltando ganha um ? no tipo, como uma caixa que pode estar vazia:

O Swift não deixa você usar o que está dentro da caixa até conferir se ela está vazia. Você pode abri-la com cuidado usando if let, ou dar um valor reserva com ??:
1let apelidos = ["Maria": "Mari", "Pedro": "Pepe"]
2
3if let apelido = apelidos["Ana"] {
4 print("Oi, \(apelido)!")
5} else {
6 print("A Ana ainda não tem apelido.")
7}
8
9let saudacao = apelidos["Maria"] ?? "amigo"
10print("Oi, \(saudacao)!")Isso mostra A Ana ainda não tem apelido. e depois Oi, Mari!. Se você esquecer de conferir, o programa nem chega a ser criado: o compilador (a ferramenta que transforma código num app) aponta a linha e explica o que está errado. O erro é pego no computador do programador, não no seu.
Mais redes de proteção
O Swift também confere outros erros clássicos. Neste teste, os dois programas guardam 127 numa pequena "caixa" de número que só cabe até 127, e depois somam 1:

O C "dá a volta" em silêncio para -128, como o hodômetro de um carro antigo que zera, e continua com um número errado. O Swift para o programa. Parar parece ruim, mas é muito mais seguro do que um app mostrar, sem ninguém perceber, um estoque negativo ou um saldo errado. O Swift também confere se você nunca lê além do fim de uma lista, e cuida da memória automaticamente, evitando os erros perigosos de memória comuns no C e no Objective-C. (Para outra linguagem construída em torno da segurança, veja O Que É a Linguagem de Programação Rust?)
Como um app é feito

- Xcode: os desenvolvedores escrevem Swift no Xcode, o app gratuito da Apple para Mac.
- SwiftUI: desde 2019, as telas de muitos apps são feitas com o SwiftUI, em que você descreve o que a tela deve mostrar e o SwiftUI a mantém atualizada.
- Simulador: o Xcode consegue mostrar o app num iPhone virtual direto no Mac, para testar sem precisar de um celular.
- App Store: quando o app fica pronto, o desenvolvedor o envia para a Apple (publicar exige uma assinatura paga de desenvolvedor da Apple), a Apple o revisa e ele aparece na App Store.
Veja uma telinha em SwiftUI com um botão de "Curtir" que conta os toques:
1import SwiftUI
2
3struct TelaCurtir: View {
4 @State private var curtidas = 0
5
6 var body: some View {
7 VStack {
8 Text("\(curtidas) curtidas")
9 Button("👍 Curtir") {
10 curtidas += 1
11 }
12 }
13 }
14}O @State avisa ao SwiftUI que curtidas pode mudar, e cada vez que muda, o SwiftUI redesenha o texto automaticamente. Não existe código dizendo "encontre o texto e atualize": você descreve a tela, e o SwiftUI cuida do resto.
O Swift é rápido?
Sim, quando é compilado na versão final. O Swift compila para código de máquina, como o C. Cronometramos a mesma tarefa, contar os números primos abaixo de 2 milhões, dentro do contêiner oficial do Swift para Linux:

A versão final do Swift empatou com o C, em cerca de um quarto de segundo, umas 70 vezes mais rápido que o Python. Também cronometramos uma versão de teste (debug), a que os programadores usam enquanto testam, que pula as otimizações para o código ficar mais fácil de inspecionar. Ela levou quase 5 segundos, um bom lembrete de quanto trabalho as otimizações do compilador fazem. Os apps que você baixa são sempre a versão final.
Onde o Swift roda

- Aparelhos da Apple: iPhone, iPad, Mac, Apple Watch, Apple TV e Apple Vision Pro. A Apple usa Swift nos próprios apps, e ele é a linguagem recomendada para os apps novos.
- Servidores: como o Swift tem código aberto e roda no Linux, ele também pode mover os bastidores de sites, com frameworks como o Vapor.
- Windows: o navegador Arc para Windows foi construído com Swift, mostrando que ele funciona também fora do mundo da Apple.
- Aprendizado: o app gratuito Swift Playgrounds, da Apple, lançado em 2016, ensina crianças e iniciantes a programar com quebra-cabeças e jogos no iPad e no Mac.
E o Android? Os apps de Android normalmente são escritos em outra linguagem, o Kotlin, que tem um papel parecido no mundo do Google. Muitas empresas mantêm duas equipes: uma escrevendo Swift para iPhone e outra escrevendo Kotlin para Android.
As desvantagens
- Ligado à Apple. O Swift roda em outros lugares, mas os seus maiores trunfos, o SwiftUI e as bibliotecas de apps, são exclusivos da Apple. Criar apps de iPhone exige um Mac.
- Muda rápido. O Swift evoluiu depressa, e as primeiras versões quebravam código antigo a cada atualização. Hoje ele é bem mais estável, mas alguns tutoriais na internet estão desatualizados.
- Tempo de compilação. Projetos grandes em Swift podem demorar para compilar, em parte porque o compilador se esforça para descobrir os tipos sozinho.
- Mundo menor fora da Apple. Para servidores, ciência de dados ou IA, outras linguagens têm muito mais ferramentas e bibliotecas prontas.
Uma breve história

Um marco recente: o Swift 6, lançado em 2024, consegue detectar conflitos de dados (data races), um tipo traiçoeiro de erro em que duas partes de um app mudam o mesmo dado ao mesmo tempo, e avisar sobre eles antes mesmo de o app rodar.
Vale a pena aprender Swift?
- Ótimos motivos: você quer criar apps para iPhone, iPad, Mac ou Apple Watch. O Swift é o caminho mais direto, e é uma linguagem moderna e legível que ensina bons hábitos.
- Bom saber: o Swift e o Xcode são gratuitos, mas o Xcode só roda no Mac. Sem um Mac, você ainda pode experimentar o Swift no Windows ou no Linux, ou no navegador com um playground on-line de Swift. O app gratuito Swift Playgrounds, da Apple, no iPad e no Mac, é um lugar divertido para começar.
Um pequeno glossário
- Swift: a linguagem de programação da Apple para os seus aparelhos, lançada em 2014 e com código aberto desde 2015.
- Objective-C: a linguagem que a Apple usava antes do Swift, construída sobre o C.
- Xcode: o app gratuito da Apple para escrever, testar e publicar apps, disponível no Mac.
- SwiftUI: o jeito da Apple de construir as telas dos apps descrevendo o que elas devem mostrar.
- Struct: um pacote de valores com nome, como a cor e a velocidade de um carro, com habilidades.
- let / var: as palavras do Swift para valores que nunca mudam e valores que podem mudar.
- Opcional: um valor que pode estar faltando, marcado com
?, que precisa ser conferido antes de usar. - nil: a palavra do Swift para "nenhum valor", uma caixa vazia.
- ARC: contagem automática de referências, o jeito como o Swift libera memória sem coletor de lixo.
- Versão final / versão de teste: a versão otimizada do app que os usuários recebem (release) e a versão mais lenta que os programadores usam enquanto testam (debug).
- Conflito de dados (data race): um erro em que duas partes de um programa mudam o mesmo dado ao mesmo tempo.
Conclusão
O Swift começou como o projeto paralelo de um engenheiro e virou a linguagem por trás da maioria dos apps novos para mais de 2 bilhões de aparelhos da Apple. Ele trocou os símbolos do Objective-C por um código limpo e legível, e acrescentou redes de proteção, como os opcionais e a checagem de números que estouram, que pegam erros comuns de travamento antes de o app chegar às mãos de alguém.
Ele está no seu melhor no mundo da Apple, e você vai precisar de um Mac para criar apps de iPhone. Mas se você já se perguntou o que existe por trás dos apps do seu celular, há uma boa chance de a resposta ser uma linguagem com nome de um pássaro pequeno e muito veloz.
Read next
Uma Breve História da Programação de Computadores: Dos Fios aos Aplicativos
Das anotações de Ada Lovelace em 1843 aos aplicativos e assistentes de programação com IA de hoje, veja como a programação mudou — e o que um programa realmente é — em linguagem simples.

O Que É a Linguagem de Programação Rust? Um Guia Simples da Linguagem Rápida Que Não Deixa Você Travar
Um guia simples e sem jargões sobre o Rust, a linguagem tão rápida quanto o C que impede famílias inteiras de erros de memória antes de o programa rodar. Entenda a ideia de posse, por que gigantes da tecnologia o adotam e onde ele é usado.

O Que É a Linguagem de Programação Go? Um Guia Simples da Linguagem da Nuvem
Um guia simples e sem jargões sobre o Go, a linguagem simples e rápida que o Google criou para a nuvem. Entenda o que são goroutines, por que um programa Go é um arquivo só e como o Go passou a mover o Docker, o Kubernetes e boa parte da internet.
Comentários
Be kind and specific. Comments with links from new accounts appear after a moderator reviews them.