Article image
Gustavo Souza
Gustavo Souza06/10/2023 17:47
Compartilhe

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:

    image

    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:

    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

    Nossa tela de bem vindo aparecerá. 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
    

    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

    Compartilhe
    Comentários (1)
    Allan Farias
    Allan Farias - 17/10/2023 13:13

    Brabo demais