Este é um projeto React Native desenvolvido como parte do teste técnico para a vaga de desenvolvedor mobile na BRQ. A aplicação utiliza a API "The Movie DB" para exibir informações sobre filmes.
- Login: Permite aos usuários autenticarem-se na aplicação.
- Home: Exibe uma lista de filmes utilizando a API do TMDB.
- Detalhamento: Mostra informações detalhadas sobre um filme específico.
O projeto utiliza a API do "The Movie DB" para obter informações sobre filmes. Consulte a documentação oficial para mais detalhes sobre como utilizar a API.
Login | Home | Empty | Details |
---|---|---|---|
https://www.figma.com/file/5JlOZPiTKhgWeVdLb1uNPJ/BRQ-Movies
Para configurar o projeto, siga os passos abaixo:
- Instalação de Dependências:
$ yarn
- Executar Testes:
$ yarn test
- Gerar Cobertura de Testes:
$ yarn coverage
$ yarn android
$ yarn ios
- Arquivo .env:
- Crie um arquivo
.env
com base no.env.example
. - Registre uma conta no TMDB para obter as chaves necessárias:
API_KEY
API_TOKEN
ACCOUNT_ID
- Configure a
BASE_URL
com o valor"https://api.themoviedb.org/3/"
.
- Justificativa: O Jest é uma estrutura de teste amplamente utilizada no ecossistema do React Native. Oferece uma sintaxe simples para escrever testes e integra-se bem com o ambiente de desenvolvimento, proporcionando uma cobertura completa para testes unitários, de integração e de snapshots.
- Justificativa: O react-native-mmkv é uma biblioteca que oferece acesso rápido e eficiente para armazenamento de dados no dispositivo utilizando o MMKV (uma alternativa ao AsyncStorage padrão do React Native). Sua escolha pode se dar pela performance superior em comparação com outras opções de armazenamento local, especialmente para dados mais pesados.
- Justificativa: Esta biblioteca é escolhida por simplificar a lógica de formulários no React Native. Oferece um conjunto de hooks que facilitam a validação, manipulação e envio de dados de formulários, reduzindo a complexidade do código e melhorando a manutenção.
- Justificativa: O react-query é uma biblioteca moderna para gerenciamento de estado e caching de dados, útil para aplicativos que dependem fortemente de dados externos, como a API "The Movie DB". Sua escolha pode estar relacionada à facilidade de fazer requisições, manipular e armazenar em cache os dados de forma eficiente.
- Justificativa: O restyle é uma biblioteca que oferece um sistema de design-first para estilização em React Native. Permite criar e reutilizar componentes estilizados de maneira consistente, promovendo uma padronização visual e facilitando a manutenção da interface do aplicativo.
- Justificativa: O zod é uma biblioteca de validação de esquema altamente eficiente e tipada, sendo uma escolha para garantir a integridade dos dados recebidos da API ou fornecidos pelos usuários. Com seu sistema de tipagem robusto, auxilia na prevenção de erros comuns de tipagem e validação de dados.
- Justificativa: O axios é uma escolha comum para fazer requisições HTTP no React Native. Oferece uma interface simples e flexível para realizar chamadas de API, com suporte a interceptores, facilitando o tratamento de erros, manipulação de requisições e respostas, além de integração bem estabelecida com o ecossistema do React Native.
Contribuições são bem-vindas! Se encontrar algum problema ou desejar implementar melhorias, sinta-se à vontade para abrir uma issue ou enviar um pull request.