O maior app de contribuição
Table of Contents
- Flash App
- Descrição
- Detalhes do projeto
- Modularização
- Arquitetura
- Instalando e rodando o projeto
- Contribuição - Criando uma Feature Branch - Abrindo uma Pull request - Acompanhando o deploy da Branch
- Publicação de Versões
- Leituras adicionais
Table of contents generated with markdown-toc
Esse projeto foi estruturado utilizando react native como principal framework de desenvolvimento.
A modularização de projeto nada mais é do que um padrão de software adotado para separar uma grande aplicação em pequenas aplicações conectadas através de dependências.
- Build time mais performático
- Produtividade entre equipes de engenharia
- Facilidade de testes
- Reutilização de base de código
- Eficiência
- Gerenciamento dos módulos
- Curva de aprendizado
- Padronização de bibliotecas core
- Percepção
Estruturado com base na arquitetura Clean e no padrão de design MVVM. Esta escolha permitiu uma maior facilidade no uso de interoperabilidade entre frameworks nativos e híbridos como também uma maior segurança nos processos de manutenção, refatoração e testabilidade.
Como a arquitetura limpa sugere, este projeto é construído em 3 pilares: As camadas de dados, domínio e apresentação.
A camada de dados foi projetada para lidar com todas as solicitações de fontes de dados (remotos ou locais). Então aqui é o local onde serão implementadas as chamadas de API, queries de GraphQl e estruturações dos modelos de dados.
A Camada de Domínio foi projetada para gerenciar toda a lógica de negócios de um recurso específico como também servir de interface para decisão de onde deve vir os dados. É também aqui que o ResponseModel é convertido em uma Estrutura de Dados mais adequada conhecida como Entidade.
A camada de apresentação foi projetada para ter todos os arquivos necessários para construir a renderização das telas. É aqui que vão se encontrar os arquivos de construção de telas, estilização e criação de componentes como também recursos exclusívos de cada feature.
Para inicializar o projeto basta ir até a raiz do mesmo e rodar comando:
yarn
Ele será responsável por baixar e instalar todas as dependências utilizadas pelo mesmo. Quando o comando for finalizado basta então rodar o comando:
// Para rodar num emulador android
yarn android
ou
// Para rodar num simulador ios
yarn ios
PS: Para rodar num simulador de iphone é necessário estar utilizando um mac.
Para contribuir com o projeto é necessário primeiramente fazer a criação de uma nova branch a partir da Dev.
O flashapp faz uso de um CI/CD que roda pipelines de publicação. De maneira trivial o fluxo a ser seguido é:
Para informações mais detalhadas a respeito de alguns dos padrões e documentações a respeito do projeto, segue uma lista de acesso exclusivo para emails flash cadastrados no notion da empresa.
Modularização de Projeto Arquitetura Localização Injeção de dependência