Desenvolvimento Mobile com Swift: ainda existem barreiras para usuários de Windows/Linux?
- #Swift
Olá, colegas da comunidade DIO!
Nesta última semana, a DIO juntamente com o Santander proporcionaram o Santander Dev Week, uma série de lives muito valiosas focadas no desenvolvimento Mobile, dando destaque às linguagens Typescript, Kotlin, Swift e Dart.
Logo no início da live com foco em Swift e iOS surgiu uma dúvida muito interessante de um dos telespectadores “Quem não tem MAC, tem algum playground para conseguir acompanhar?”.
Esta é uma dúvida muito comum entre os devs que estão interessados em conhecer mais sobre essa linguagem. Portanto, neste artigo serão discutidas as limitações que programadores fora dos sistemas Apple têm ao se aventurarem no desenvolvimento Mobile Swift - e como elas podem ser superadas! Veremos quais são as alternativas para se programar em Swift fora dos playgrounds oficiais da Apple e quais são suas limitações.
Neste artigo você vai encontrar:
- Introdução
- Swift e Objective-C: qual a diferença no Desenvolvimento Mobile para iOS?
- Compiladores e ecossistemas alternativos
- Utilizando Windows
- Utilizando Máquinas Virtuais MacOS
- Utilizando Linux
- Posso criar um aplicativo para iOS mesmo sem as ferramentas da Apple?
- Conclusão
- Referências
Introdução
Não é novidade que a Apple domina o mercado da tecnologia e que é um dos (se não o) top-of-mind dos consumidores finais quanto aos telefones celulares.
A popularidade em escala mundial dos produtos da Apple se refletem no aumento da demanda por programadores que dominem Swift quando o assunto é Desenvolvimento Mobile.
Construir uma carreira em volta do desenvolvimento mobile para iOS pode abrir um leque de possibilidades para os profissionais que estão adentrando neste mercado, já que o Swift é uma linguagem que permite a criação de diversos tipos de aplicações para este sistema.
O Swift, sucessor do Objective-C no desenvolvimento de produtos Apple, é querido pelos programadores de iOS devido às seguintes características:
- É uma linguagem moderna e de alto nível
- É uma linguagem segura, rápida, flexível
- É intuitiva e simples
- Tem alta compatibilidade com diversos dispositivos
- Possui bons frameworks, bibliotecas e APIs
- É multi-paradigma
- É código aberto!
A democratização da programação cada vez mais se torna uma realidade no Brasil graças aos avanços que as plataformas e comunidades de programadores têm feito para que o conhecimento e que as ferramentas sejam cada vez mais acessíveis, mas como a Apple e o Swift se encaixam nisso?
O alto valor de dispositivos como, por exemplo, iPhone, iMacs e Macbooks e Apple Watches é um dos principais fatores que podem fazer com que o Swift não seja a primeira escolha como linguagem de programação para o desenvolvimento Mobile, já que, para criar e compartilhar um aplicativo iOS com os usuários é necessário pelo ao menos um computador Mac.
Muitos programadores são desencorajados a aprender Swift por ainda não possuírem determinado produto X ou Y da Apple. A boa notícia é que, para fins de aprendizado, o Swift está oficialmente disponível para Windows e Linux!!
“Mas como isso é possível?” As comunidades de Windows e Linux estão interessadas em aprender Swift e sabendo disso, a própria Swift.org se mobilizou nos últimos anos para que mais programadores tenham acesso à linguagem. Quanto mais pessoas programando em Swift, mesmo que sem dispositivos Apple, mais popular a linguagem se torna e mais produtos em iOS podem ser criados!
Continue lendo este artigo para adentrar no universo iOS com Swift e descobrir como aprender Swift mesmo sem um Mac!
Swift e Objective-C: qual a diferença no Desenvolvimento Mobile?
Como mencionado anteriormente, o Swift, criado em 2014 pela Apple, é o sucessor do Objective-C em relação ao desenvolvimento de ferramentas para iOS. É uma linguagem feita para o ambiente iOS, portanto, ela apresenta melhores desempenhos neste quesito. Já o Objective-C é uma linguagem robusta dos anos 80, que nasceu com o intuito de reunir o melhor das linguagens C e Smalltalk e por décadas foi a linguagem principal dos sistemas da Apple.
Vantagens do Swift
- É a nova linguagem “oficial” para desenvolvimento para iOS
- Sintaxe mais simples e multiparadigma
- É uma linguagem muito rápida
- Faz alterações de forma assíncrona
Vantagens do Objective-C
- Ainda é utilizado para aplicações e APIs para iOS
- É uma linguagem robusta
- Qualquer compilador de C também compilará Objective-C
- É altamente compatível com C++
Veja a comparação de como o famoso Hello World é escrito nas duas linguagens:
Uma boa notícia é que as duas linguagens partilham das mesmas APIs e SDKs para trabalhar com o ecossistema da Apple. A verdade é que muitos sistemas utilizam Swift e Objective-C em conjunto, mas com objetivos diferentes. Então caso a aplicação mobile que você esteja desenvolvendo precise se comunicar dinamicamente com outros produtos da marca (e terceiros, como redes sociais), isto não será um problema!
No entanto, por ser uma linguagem mais simples e segura, recomenda-se a utilização do Swift para o desenvolvimento de aplicativos a menos que exista uma razão grande para a utilização de Objective-C, como por exemplo, a manutenção de aplicações legado e o acesso a recursos de baixo nível.
Ok, até aqui tudo bem, você já conseguiu entender a diferença e importância dessas duas linguagens, mas como posso realmente desenvolver meus projetos mobile com Swift?
Compiladores e ecossistemas alternativos
Se comprar um computador Mac de última geração ainda não está nos seus planos futuros, confira alternativas para aprender a programar em Swift mesmo sendo um usuário de Windows ou Linux.
Veja na tabela abaixo quais são os S.O que possuem suporte oficial para o Swift segundo o próprio Swift.org
Utilizando o Windows
Para desenvolver aplicações mobile em Swift no Windows, com o Visual Studio Code, você precisará da:
- A IDE Visual Studio Code
- A extensão “Swift Extension for Visual Studio”*
- A linguagem Swift e suas dependências, disponibilizada oficialmente no Swift.org
No blog Swift.org, é demonstrado como a extensão de Swift criada pelo Swift Server Workgroup proporciona um ambiente similar ao do XCode, permitindo que os códigos escritos sejam testados e debugados assim como na IDE oficial. Além disso, ela cria um ambiente de desenvolvimento pré-configurado.
Esta extensão possui funções necessárias para o programação em Swift, mas a equipe ainda continua trabalhando firme para que outras ferramentas estejam disponíveis para os usuários de Windows.
Caso você opte por não utilizar o Visual Studio Code, existe também uma outra alternativa: o Swift for Windows, uma plataforma de compilação de Swift open source criada por Han Sangjin em 2018, que está disponível para Windows 10 na sua página oficial.
O compilador necessita que você escolha um arquivo a ser compilado e que será mostrado no prompt de comandos do Windows.
Utilizando Máquinas Virtuais MacOS
Se você tem alguma experiência com computação, imagino que você já tenha explorado as vantagens que utilizar máquinas virtuais podem nos proporcionar. Portanto, uma outra alternativa para ter uma experiência um pouco mais completa com Swift seja a utilização de uma VM que seja MacOS.
No entanto, esta opção não é a mais recomendada, pois ela não se enquadra nas políticas da Apple. É possível? Sim. Mas além de não ser 100% seguro, podem ocorrer uma série de problemas que podem levar seu projeto mobile em Swift por água abaixo.
No entanto, existe uma forma de fazer isso com um pouco mais de segurança. Por exemplo, Macincloud é uma plataforma que disponibiliza um computador Mac na nuvem on-demand, ou seja, pague de acordo com a sua necessidade.
Ela conta com os seguintes recursos
- XCode atualizado
- Última versão do Mac OSX
- Visual Studio para MAC
Os preços variam de 1 dólar/hora a 49 dólares/mês. Uma desvantagem desta alternativa é que a menos que você possa pagar estes valores em dólar, ela não será viável; além de que o desempenho desta máquina é razoavelmente reduzido em comparação com uma máquina Mac física.
Utilizando o S.O Linux Ubuntu
Para programar em Swift utilizando o Ubuntu, você deve instalar o pacote da linguagem no próprio Swift.org ou utilizar seu binário oficial no prompt de comando:
No Ubuntu 18.04
apt-get install \
binutils \
git \
libc6-dev \
libcurl4 \
libedit2 \
libgcc-5-dev \
libpython2.7 \
libsqlite3-0 \
libstdc++-5-dev \
libxml2 \
pkg-config \
tzdata \
zlib1g-dev
No Ubuntu 20.04
$ 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
No Ubuntu 22.04
$ apt-get install \
binutils \
git \
gnupg2 \
libc6-dev \
libcurl4-openssl-dev \
libedit2 \
libgcc-9-dev \
libpython3.8 \
libsqlite3-0 \
libstdc++-9-dev \
libxml2-dev \
libz3-dev \
pkg-config \
tzdata \
unzip \
zlib1g-dev
Quanto à IDEs, não existe uma IDE para Linux que tenha uma extensão oficial para Swift além do Visual Studio Code; mas caso você prefira utilizar outro método, é possível utilizar uma versão modificada do editor de texto Atom criada por Sam Deane e disponibilizada neste repositório no GitHub.
* Caso você esteja curioso e queira entender mais como foi o processo de transportar o ecossistema do Swift para Windows e outros sistemas UNIX, recomendo que assista à esta palestra de um desenvolvedor da LLVM contando mais sobre este (quase que literalmente) quebra-cabeça (infelizmente esta palestra só está disponível em inglês)
Posso criar um aplicativo para iOS mesmo sem as ferramentas da Apple?
A resposta curta é: não.
Independente de qual das duas linguagens escolher, infelizmente você só conseguirá realizar o deploy de apps iOS com a utilização da IDE XCode, que é a plataforma oficial da Apple para criar e postar aplicativos e ferramentas criadas com o Swift.
Para criar um aplicativo completo e oficial com Swift e compartilhá-lo com o mundo você precisará de:
- Um computador Mac da Apple com uma versão recente do macOS.
- A IDE XCode, para codificar, compilar, testar, debugar aplicativos em Swift
- O SwiftUI, um framework feito para criar interfaces de usuário
- Uma conta Apple Developer ativa (que custa US$ 99,00)
Devemos perder as nossas esperanças caso não possamos adquirir um Mac da última geração? A resposta é não! É verdade que para a experiência completa, a aquisição dessas ferramentas é irremediável, mas não significa que o desenvolvimento em Swift fora do ecossistema Apple é 100% impossível.
Definitivamente pode ser um processo mais trabalhoso caso você realmente queira aprender Swift, mas lembre-se que há uma comunidade inteira de pessoas com o mesmo sonho e fazendo o possível para que a experiência de se programar em Swift seja mais acessível para os “não-usuários” da Apple, ao pouco as ferramentas e opções vão melhorar (como já vem melhorado nos últimos 5 anos), então não desista ainda!
“Mas porque devo insistir em aprender Swift se não vou poder criar aplicativos reais?”
Bom, como dito anteriormente, a alta demanda de profissionais com conhecimento em Swift para desenvolvimento mobile não condiz com a quantidade de profissionais capacitados para tal. Apesar das limitações, não ter um computador Mac não te impede de aprender mais sobre essa linguagem!
Além disso, acredito que o aprendizado de conceitos fundamentais da programação para mobile com Swift possa beneficiar em muito os iniciantes, visto que a grande vantagem de sua utilização são a versatilidade e a simplicidade.
Se você já tem um computador com Windows e/ou Linux, aprender Swift felizmente não custa nada além do que você já possui. O Swift possui um guia completo produzido pela própria Apple e existem diversos cursos, pagos ou não, voltados para o desenvolvimento mobile nesta linguagem. Você pode ainda não criar aplicativos reais, mas ao longo do tempo na sua vida profissional você com certeza possuirá recursos o suficiente para investir neste ecossistema.
* Uma dica da redatora: sempre que possível aproveite oportunidades gratuitas de se capacitar em Swift e entrar no mercado iOS, como o Bootcamp Santander 2023, oferecido pela DIO e Santander!
Conclusão
O Swift é uma excelente linguagem de programação, sua simplicidade e alta gama de possibilidades cativou a comunidade de desenvolvedores mobile/iOS. O Swift definitivamente veio para ficar, sendo você um programador que utiliza MacOS, Windows ou Linux.
Neste artigo descobrimos que sim, existem algumas obstáculos para o desenvolvimento mobile com a linguagem Swift fora do ecossistema da Apple, mas que nem tudo está perdido! Existem maneiras efetivas de explorar essa linguagem, de formas oficiais ou não.
Conhecemos as diferenças entre Swift e Objective-C e suas respectivas utilidades no desenvolvimento mobile, quais são os recursos disponíveis para a programação em Swift e como instalá-lo em sua máquina e quais são suas limitações.
Por fim, conclui-se que, se você realmente quer trilhar no desenvolvimento mobile com Swift, nenhuma barreira será grande o suficiente para te impedir! Não se esqueça que na internet existem muitos recursos, comunidades e plataformas dispostas a partilhar conhecimento - como a DIO!
Bons estudos sempre!
Referências
2019 LLVM developers’ meeting: S. abdulrasool “Porting by a 1000 Patches: Bringing Swift to Windows”. , 17 nov. 2019. https://youtu.be/Zjlxa1NIfJc . Acesso em: 1 ago. 2023
APPLE INC. Introducing Swift on Windows. Disponível em: <https://www.swift.org/blog/swift-on-windows/>. Acesso em: 1 ago. 2023.
Como entrar no mercado de desenvolvimento iOS? Disponível em: <https://coodesh.com/blog/carreiras/como-entrar-no-mercado-de-desenvolvimento-ios/>. Acesso em: 1 ago. 2023.
Desenvolvimento de aplicativos iOS. Disponível em: <https://www.ibm.com/br-pt/topics/ios-app-development>. Acesso em: 1 ago. 2023.
DEVMEDIA. Desenvolvimento para iOS com Objective-C. Disponível em: <https://www.devmedia.com.br/desenvolvimento-para-ios-com-objective-c/24057>. Acesso em: 1 ago. 2023.
Diferença entre Swift e Objective C – Acervo Lima. Disponível em: <https://acervolima.com/diferenca-entre-swift-e-objective-c/>. Acesso em: 1 ago. 2023.
GALDINO, L. Swift Parte 1 – História. Disponível em: <https://blog.cod3r.com.br/swift-historia/>. Acesso em: 1 ago. 2023.
Installing swift — swift for Linux documentation. Disponível em: <https://swift-linux.refi64.com/en/latest/install.html>. Acesso em: 1 ago. 2023.
Swift - Apple (BR). Disponível em: <https://www.apple.com/br/swift/>. Acesso em: 1 ago. 2023.