DEV Community

Cover image for Como programar em Swift no Linux
Matheus dos Reis de Jesus
Matheus dos Reis de Jesus

Posted on

Como programar em Swift no Linux

Aprender a programar em Swift, para quem não tem um dispositivo da Apple, parece impossível. Porém, muita gente não sabe que a linguagem Swift é de código-aberto e pode ser usada no macOS, Windows e Linux. Hoje, veremos o passo-a-passo para os SOs Linux, mais especificamente, o Ubuntu.

NOTA: Não é possível criar apps para os dispositivos da Apple usando os sistemas operacionais Linux. Para isso, é preciso usar o macOS ou iPadOS. Porém, é possível aprender e programar em Swift, o que já é um ótimo começo.

1. Download da Toolchain

Primeiramente, vamos realizar o download do arquivo compactado contendo a toolchain de Swift, que dá suporte à compilação e execução de código em Swift. Para isso, acesse a página a seguir:

https://www.swift.org/install

Nela, é possível escolher o sistema operacional desejado para obter os arquivos de instalação:

Captura de tela da página de instalação de Swift com 3 opções listadas: macOS, Linux e Windows

Como vamos utilizar como base o Ubuntu Linux como base para esse tutorial, basta selecionar a opção Linux, e em seguida a opção da plataforma Ubuntu. Após isso, é possível selecionar a versão do Ubuntu em que será realizada a instalação. No meu caso, é a 22.04.

Escolha a opção correspondente à sua instalação do Ubuntu:

Captura de tela com as opções Linux, plataforma Ubuntu e versão Ubuntu 22.04 selecionadas

Feito isso, iremos realizar o download do tarball contendo a toolchain. Para isso, primeiro, é necessário saber qual a arquitetura do seu processador: x86_64 ou arm64. Para isso, execute o comando abaixo no seu terminal de preferência:

uname -m
Enter fullscreen mode Exit fullscreen mode

Se a saída for x86_64, clique na opção abaixo:

Captura de tela com o botão

Se for aarch64 ou arm64, clique na opção abaixo:

Captura de tela com o botão

Feito isso, o download de um arquivo .tar.gz será realizado. Agora, você pode acessar o link a seguir para acompanhar o processo de instalação:

https://www.swift.org/install/linux/tarball/

Instalação das dependências

Antes de instalarmos a toolchain em si, é necessário garantir a instalação de todas as dependências da linguagem. O link anterior possui algumas seções contendo as dependências para cada SO Linux:

Captura de tela com as opções de sistemas operacionais baseados no Linux e suas respectivas dependências

Estranhamente, não há uma opção para o Ubuntu 22.04, então usei as mesmas dependências do 20.04. Antes de instalar as dependências, é importante executar o comando para atualizar os pacotes já existentes na sua máquina:

$ apt-get update
Enter fullscreen mode Exit fullscreen mode

Permissões de administrador podem ser necessárias para executar os comandos no terminal. Para isso, basta adicionar o sudo antes dos comandos.

Feito isso, basta instalar as dependências:

$ apt-get install \
          binutils \
          git \
          gnupg2 \
          libc6-dev \
          libcurl4 \
          libedit2 \
          libgcc-9-dev \
          libpython2.7 \
          libsqlite3-0 \
          libstdc++-9-dev \
          libxml2 \
          libz3-dev \
          pkg-config \
          tzdata \
          uuid-dev \
          zlib1g-dev
Enter fullscreen mode Exit fullscreen mode

Após instalar as dependências, podemos finalmente realizar a instalação da toolchain. Vamos acessar a pasta downloads para extrair o arquivo que baixamos anteriormente:

$ cd ~/Downloads
Enter fullscreen mode Exit fullscreen mode

Agora, podemos extrair o conteúdo do arquivo comprimido. O nome será parecido com:

swift-<versao>-RELEASE-<plataforma>-<arquitetura>.tar.gz

$ tar xzf <nome-do-arquivo>.tar.gz
Enter fullscreen mode Exit fullscreen mode

Atenção: O nome do arquivo .tar.gz pode variar de acordo com a versão da toolchain que for obtida no site. Você pode começar digitando ~/.Downloads/swift- e apertar tab para que o terminal complete o restante.

Os arquivo comprimido será extraído para uma pasta de mesmo nome. Agora, iremos mover esta para um novo destino:

Agora, vamos criar uma pasta para onde iremos extrair a toolchain:

$ mv <nome-da-pasta> ~/.swift-toolchain
Enter fullscreen mode Exit fullscreen mode

Pronto, agora já temos a toolchain no lugar correto. O próximo passo é torná-la acessível pelo terminal, modificando a variável PATH.

É preciso adicionar o seguinte caminho:

export PATH="~/.swift-toolchain/usr/bin:$PATH"
Enter fullscreen mode Exit fullscreen mode

Use seu arquivo de preferência para inserir essa modificação (.bashrc, .zshrc, .bash_profile, .zprofile ou outro):

$ export PATH="~/.swift-toolchain/usr/bin:$PATH" > ~/.bashrc
Enter fullscreen mode Exit fullscreen mode

Para confirmar que a instalação foi um sucesso, você pode executar o seguinte comando no terminal:

$ swift --version
Enter fullscreen mode Exit fullscreen mode

O resultado deverá ser similar a esse(a depender do seu SO e arquitetura)

Swift version 5.10.1 (swift-5.10.1-RELEASE)
Target: aarch64-unknown-Linux-gnu
Enter fullscreen mode Exit fullscreen mode

Pronto, já é possível executar código Swift na sua máquina.

Como executar código em Swift

Agora que já temos a toolchain instalada, podemos criar código em Swift.

ATENÇÃO: Como dito anteriormente, não é possível criar apps para iOS/iPad/macOS/tvOS em ambiente Linux. Frameworks específicos como UIKit, SwiftUI e outros não estão disponíveis.

Primeiro, vamos criar um arquivo:

$ touch exemplo.swift
Enter fullscreen mode Exit fullscreen mode

Arquivo criado, podemos abrí-lo com nosso editor de preferência. Pode ser o Visual Studio Code, nano, o que preferir. Eu usei o vim:

$ vim exemplo.swift
Enter fullscreen mode Exit fullscreen mode

Captura de tela do arquivo exemplo.swift aberto no editor vim. O arquivo diz print(

Agora, podemos executar o código no terminal e ver o resultado:

$ swift exemplo.swift 
Hello, world!
Enter fullscreen mode Exit fullscreen mode

Com tudo configurado, agora você já pode começar a programar em Swift sem precisar de um dispositivo da Apple. Gostou desse artigo? Compartilhe!

Até à próxima 👋🏽

Top comments (2)

Collapse
 
rychillie profile image
Rychillie

Um ótimo artigo!

Obrigado! 🙏

Collapse
 
vitormrock profile image
Vitor Moreira

Que ótimo, vai beneficiar muitas pessoas.