Desenvolvendo aplicações IOS sem Mac, a partir de uma imagem Docker OSX
O desenvolvimento para IOS gera uma certa restrição devido ao custo, pois é necessário ter um Mac para implementar e testar os aplicativos.
Embora existam algumas alternativas, como utilizar uma máquina virtual em nuvem e ou mesmo um hackthosh, mesmo assim tudo tem um custo.
Mas se eu disser que tem uma outra forma de você desenvolver sem custo nenhum, apenas seguindo alguns passos para configurar seu ambiente.
Então preste bastante atenção o que irei explicar nesse artigo.
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
1.Vamos agora ao que interessa: Instale o docker na sua máquina e configure corretamente seguindo a documentação oficial para o seu sistema operacional. Aqui abordaremo o sistema linux.
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:
1.Ativando os serviços do docker:
systemctl start docker.service
2.Ativando os serviços do docker para iniciar junto com o sistema:
systemctl enable docker.service
3.Testando o docker:
docker run hello-world
4. A imagem hello-world será baixada:
Agora nossa máquina está pronta para baixarmos a imagem IOS
Imagem DockerOSX e Configuração do ambiente IOS
1.Entre no repositório da imagem DockerOSX, esse repositório possui várias imagens, escolha a sua versão preferida do IOS .
2. 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
Nossa tela de bem vindo aparecerá. 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
Extra:
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 Bibliográficas:
Documentação do Docker - https://www.docker.com/
Repositório Docker OSX - https://github.com/sickcodes/Docker-OSX