Article image
Gustavo Souza
Gustavo Souza01/08/2023 16:28
Compartilhe

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:

image

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:

image

E assim que terminar será aberto um emulador com o ambiente do IOS para podermos instalar nosso sistema operacional Mac, selecione Mac Base System:

image

Quando carregar o sistema, clicaremos em Disk Utility:

image

Vá até partição que está com mais espaço de armazenamento e clique na opção Erase:

image

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:

image

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).

image

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á.

image

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

image

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:

image

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

image

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

Compartilhe
Comentários (3)
Raimundo Amorim
Raimundo Amorim - 07/09/2023 00:00

Show, vai facilitar bastante.

Mas ficou uma dúvida. Com essa imagem posso usar o id da Apple pra ter uma conta developer?

Sabe dizer.

E obrigado

Ana Alice
Ana Alice - 01/08/2023 21:14

Espetacular, agora estou mais interessada no Desenvolvimento Mobile.

Alex Aleluia
Alex Aleluia - 01/08/2023 16:42

Muito bom, eu desonhecia essa ferrameta.