Desenvolvendo aplicações IOS sem Mac, de forma prática e com custo Zero 0.
- #Flutter
- #Kotlin
- #Swift
Uma das questões abordadas na semana DevWeek foi como desenvolver aplicações IOS sem Mac. E aqui nesse artigo abordarei a minha forma preferida.
Sabemos que podemos utlizar várias formas para desenvolver nossas aplicações IOS:
- Utlizando um Mac seria o ideal, mas nem todos podem adiquirir um, o custo é muito alto;
- Outra opção seria um Hackstosh, mas esse tem algumas configurações a fazer, e nem todo hardware é compatível, teremos que trocar algumas peças;
- Que tal usar MacCloud, um serviço em nuvem, também tem um custo e para quem é iniciante não é o aconselhável;
- Humm, 🤔 e agora? E uma máquina virtual, não irei gastar nada. Pode ser, mas as máquinas virtuais puxam muito recurso da máquina e compremete muito o desempenho.
Já ouviram falar do Docker OSX?
O Docker OSX é uma imagem docker que utiliza o QEMU para que possamos emular um sistema operacional.
- QEMU é um software livre que foi escrito por Fabrice Bellard que implementa um emulador de processador, permitindo uma virtualização completa de um sistema PC dentro de outro.
- O Docker é um software de código aberto usado para implantar aplicativos dentro de containers virtuais. A conteinerização permite que vários aplicativos funcionem em diferentes ambientes complexos.
Docker vs Máquina Virtual
- Embora o Docker e as máquinas virtuais tenham um propósito semelhante, seu desempenho, portabilidade e suporte a sistemas operacionais diferem significativamente.
- A principal diferença é que os containers do Docker compartilham o sistema operacional do host, enquanto as máquinas virtuais também têm um sistema operacional convidado sendo executado no sistema host. Esse método de operação afeta o desempenho, as necessidades de hardware e o suporte do SO.
Mas antes é necessário ter o docker instalado e configurado na sua máquina, abordaremos aqui para o sistema linux. Mas também pode ser instalado no Windows, segue aqui a documentação
Instalação e configuração do docker, via Linux:
1. Atualize seus pacotes
sudo apt-get update
2.Instalação do docker
sudo apt-get install docker-ce docker-ce-cli containerd.io
3.Crie um grupo docker
sudo groupadd docker
4.Adicione seu usuário ao grupo de usuários docker
sudo usermod -aG docker $USER
5.Para ativar as alterações realizadas nos grupos, você pode realizar logout e login de sua sessão ou executar o seguinte comando no terminal:
newgrp docker
Inciando os serviços do docker:
Ativando os serviços do docker
systemctl start docker.service
Ativando os serviços do docker para iniciar junto com o sistema
systemctl enable docker.service
Testando o docker:
docker run hello-world
Resultado da imagem hello-world baixada:
Agora nossa máquina está pronta para baixarmos a imagem IOS. Entre no site https://github.com/sickcodes/Docker-OSX, um repositório do github com várias imagens do docker OSX.
Aqui usaremos a imagem Big Sur, copie e cole esse comando para o seu terminal:
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:big-sur
Será iniciado o download da imagem docker-osx:big-sur:
E assim que terminar será aberto um emulador com o ambiente do IOS para podermos instalar nosso sistema operacional Mac, selecione Mac Base System:
Quando carregar o sistema, clicaremos em Disk Utility:
Vá até partição que está com mais espaço de armazenamento e clique na opção Erase:
Vamos agora formatar nosso disco, então coloque o nome macOS, tipo de formatação APFS, no Scheme escolha a opção GUID Partion Map:
Clique em Erase, aguarde e pode fechar a janela do Disk Utility.
Vá em Reinstall macOS Big Sur e clique em continuar e continuar novamente.
Aceite os termos, escolha a partição que criamos macOS e continuar. Será iniciada a instalação do sistema. (Geralmente demora de 30min a 1h).
Feito isso, o sistema reiniciará, selecione a mesma opção macOS
Show, nossa tela de bem vindo apareceu. Essa parte é um pouco lenta, mas logo se normalizará.
Configure a sua maneira, mas não faça login no AppleID agora
Após esse processo, nossa área de trabalho aparecerá e então iremos aguardar até a dock aparecer, pois após isso o sistema fica mais fluído
Show, agora vamos instalar o brew, nosso gerenciador de pacotes:
Abra o terminal do Mac, e digite o código:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Irá pedir sua senha definida anteriormente para instalar.
Pronto, vamos lá na Apple Store para instalar nosso xcode, pois precisaremos dele para emular nossas aplicações IOS:
Em seguida, abra o xcode e aceite os termos e aguarde instalar as dependências.
Vá em Preferences -> Locations -> Command-Line Tools vai estar vazio, selecione a opção com a versão do xcode.
Quando a instalação terminar, abriremos o terminal novamente e instalaremos o cocoapods. Ele serve como um gerenciador de dependências do xcode.
brew install cocoapods
E finalmente nosso macOS está instalado e configurado para desenvolvemos nossas aplicações, rodar e buildar projetos com Android, React Native, Flutter, Swift, Ionic, entre outros.
E vantagem disso tudo é que após terminarmos nosso projeto podemos fechar o emulador. O sistema ficará dentro do container dormindo, e esperando a hora de reativarmos novamente, sem comprometer o desempenho da máquina que é bem diferente de uma máquina virtual.
Para ativarmos novamente o container, basta digitarmos o comando em nosso terminal linux:
docker ps -a
Copiar o ID do nosso container, nesse caso aqui o 09f2f3b1e9b0 , e digitarmos o comando para ativar nosso container:
docker container start 09f2f3b1e9b0
Para facilitar ainda mais a chamada de nosso container, podemos criar um alias para ele, um apelido: alias [nome do alias]="[comando entre aspas.]"
alias [macos]="[docker container start 09f2f3b1e9b0]"
E agora para chamamos nosso container macOS, basta digitamos em nosso terminal:
macos
Referências:
Documentação do Docker - https://www.docker.com/
Repositório Docker OSX - https://github.com/sickcodes/Docker-OSX