/expo-sandbox

Projeto dedicado para estudos de CI/CD e boas práticas para futuros projetos mobile com Expo

Primary LanguageTypeScript

Expo Sandbox

Introdução

Projeto voltado para estudos de CI/CD, Builds/Deploys OTA e boas práticas.

Estrutura de Pastas

|-- src
  |-- app
    |-- index.tsx
    |-- message.tsx

  • src: ("src" ou "source" é Pasta que contém o Código Fonte do aplicativo)
  • app: (Pasta onde as telas do aplicativo vão ser desenvolvidas)
  • index.tsx: (Primeira tela a ser exibida, já que arquivos "index" só considerados arquivos principais)
  • message.tsx: (Tela que exibe uma simples mensagem)

Descrição

Foram criadas 2 branches development e main para que seja possível realizar uma integração com o Dashboard do Expo.Dev visando a automação de Builds e Deploys ao realizar um commit.

Com isso, não será necessário realizar Builds e Deploys manualmente.

Será necessário estudar:

  • Variáveis de Ambiente no Expo (EXPO_PUBLIC...)
  • Configuração do arquivo eas.json

TODO

  • Criar tela de Login para teste da Autenticação do ambiente do atual
  • Criar tela de "Hello World", onde será executada uma chamada de API para teste do ambiente atual
  • Linkar projeto com Cognito da Fenix
  • Criar projeto no Dashboard do Expo.Dev
  • Configurar corretamente as Variáveis de Ambiente
  • Configurar builds para serem instaladas através do Dashboard do Expo
  • Configurar corretamente arquivo aws-exports para Build e Deploy
    • Foi utilizado o campo channel durante o build de production, o que causou em um update automático no channel de production. Ao realizar o eas update na branch de production as Variáveis de Ambiente e o arquivo aws-exports.js ainda estavam configurados como sendo de development. Só foi possível utilizar dados de production instalando o APK diretamente dos logs do Dashboard do Expo. Preciso ver o por que isso está acontecendo
  • Gerar mais builds tanto para development quanto para production com ambos os builds com diferenças na Interface, para facilitar os testes
  • Criar fluxos CI/CD para automatizar Builds/Deploys