Este é um aplicativo móvel para explorar repositórios do GitHub, construído com Expo e TypeScript.
A arquitetura do projeto é uma Arquitetura Híbrida (Features + Clean Architecture). A organização principal é por funcionalidade (/features) para maior agilidade e clareza, mas possui outras camadas (/core, /infrastructure) para o desacoplamento e facilidade de manutenção. Uma estrutura flexível e simples de entender para um projeto menor.
-
Design System: Um Design System (/designSystem) dedicado para garantir consistência visual e um desenvolvimento mais rápido e com menos erros.
-
Framework: O projeto utiliza React Native com o ecossistema Expo.
-
Linguagem: TypeScript foi adotado para garantir a segurança de tipos (
type-safety). -
Gerenciamento de Estado do Servidor: Para o fetching, caching e sincronização de dados com a API do GitHub, foi utilizado o TanStack Query (React Query). Ele oferece uma solução robusta para lidar com estado assíncrono, otimizando o desempenho com features como cache, refetching em background e revalidação automática.
-
Cliente HTTP: Axios é o cliente HTTP utilizado para realizar as requisições à API do GitHub de forma simples.
-
Navegação: A navegação entre as telas é gerenciada pelo React Navigation, utilizando o
native-stackpara uma experiência de navegação nativa e performática em dispositivos móveis. -
Estilização: O Emotion foi escolhido para a estilização dos componentes, permitindo a escrita de CSS-in-JS com suporte a temas, componentização de estilos e uma sintaxe familiar.
-
Qualidade de Código: Para manter a consistência e a qualidade do código, o projeto utiliza ESLint para análise estática e Prettier para formatação automática. Husky e lint-staged foram configurados para executar essas ferramentas automaticamente antes de cada commit, garantindo que o código enviado ao repositório siga os padrões definidos.
Antes de começar, você vai precisar ter as seguintes ferramentas instaladas em sua máquina:
- Node.js (versão LTS recomendada)
- Yarn ou npm
- Expo CLI (
npm install -g expo-cli)
-
Clone o repositório:
git clone https://github.com/gabriel-cardoso-oliveira/git-explorer-app.git cd git-explorer-app -
Instale as dependências:
Utilizando npm:
npm install
Ou utilizando Yarn:
yarn install
-
Configure as variáveis de ambiente:
Crie um arquivo
.envna raiz do projeto. Você precisará de um token de acesso pessoal do GitHub para evitar limites de taxa da API.# .env EXPO_PUBLIC_GITHUB_TOKEN=seu_token_pessoal_aqui
Com as dependências instaladas e o ambiente configurado, você pode executar os seguintes comandos:
# Inicia o servidor de desenvolvimento do Expo
npx expo startApós iniciar o servidor, o Expo Dev Client abrirá no seu terminal. Você pode:
- Escanear o QR Code com o aplicativo Expo Go (Android) ou o aplicativo de Câmera (iOS).
- Pressionar
apara abrir no emulador Android. - Pressionar
ipara abrir no simulador iOS. - Pressionar
wpara abrir no seu navegador web.
# Inicia e tenta abrir diretamente no Android
npm run android
# Inicia e tenta abrir diretamente no iOS
npm run ios
# Inicia e tenta abrir diretamente na Web
npm run webO projeto utiliza Jest e React Native Testing Library para os testes.
# Executa os testes em modo "watch"
npm run test
# Executa os testes e gera um relatório de cobertura
npm run test:coveragePara verificar a qualidade e o estilo do código, execute:
npm run lintA formatação é aplicada automaticamente no pre-commit, mas pode ser executada manualmente com npx prettier . --write.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|










