image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Gustavo Souza
Gustavo Souza06/10/2023 17:47
Compartilhe
Microsoft Certification Challenge #3 DP-100Recomendados para vocêMicrosoft Certification Challenge #3 DP-100

Desenvolvendo aplicações IOS sem Mac, a partir de uma imagem Docker OSX

  • #Flutter
  • #React Native
  • #iOS

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
Recomendados para você
XP Inc. - Cloud com Inteligência Artificial
Microsoft AI for Tech - Azure Databricks
Microsoft Certification Challenge #3 DP-100
Comentários (1)
Allan Farias
Allan Farias - 17/10/2023 13:13

Brabo demais

Recomendados para vocêMicrosoft Certification Challenge #3 DP-100