Projeto para criação de aplicativo para buscar dados e listagem de restaurantes
Essas instruções fornecerão uma cópia do projeto em execução na sua máquina local para fins de desenvolvimento e teste. Consulte implantação para obter notas sobre como implantar o projeto em um sistema ativo.
Para execução e desenvolvimento do projeto é necessário, ou que tenha instalado:
- nodejs
- react-native
- yarn ou npm
- Android SDK
- JavaScript
- React-Native
- react-native-svg
- react-native-svg-transformer
- TypeScript
- Jest
- React Native Testing library
- Para linkar as fontes, na raiz do projeto foi executado
npx react-native link
- Para executar o aplicativo pela avd do android sdk basta baixar os pacotes do package.json
utilizando o comando
yarn ou npm install
e logo após o download terminar, utilizar o comandonpx react-native run-android
.
- Para os testes e criação do app, foi utilizado um AVD com android 11 resolução full HD (porém também testei em resoluções HD e ultra)
- Para a execução dos testes unitários, basta rodar o comando
yarn test
ounpm run test
. - Para verificar o coverage basta executar o comando
yarn jest --coverage
- A seguir a cobertura dos testes realizdos
src
- api
- assets
- components
- pages
- routes
- services
- Para design e organização do projeto utilizei parte dos conceitos do Design atomico para aplicacoes react, onde cada componente é criado e reutilizado
-
A performance do app e da lista foi verificada utilizando o react devtools para mapear os componentes renderizados e melhorias possíveis.
-
Ex: no componente RestaurantCard que está renderizando na lista, foi aplicado o conceito de "pure component", onde na renderização, animações e alguns tipos de processos que precisam de mais performance são desconsiderados, fazendo com que a lista seja renderizada melhor e exigindo menos do dispositivo.
-
A seguir algumas imagens para verificar a mudança:
- Configurar o projeto para geração da release (até o momento como está somente em desenvolvimento, o apk está sendo gerado somente em debug): para isso é necessario gerar as keys seguindo o tutorial (https://reactnative.dev/docs/signed-apk-android), acessar a pasta android dentro do diretorio raiz do projeto e então executar o comando
./gradlew bundleRelease
para a geração do apk - Realizar algumas melhorias de organização dos componentes
- Melhorar organização de alguns hooks (como useContext e não depender muito do useState na busca)
- Organizar os estilos para que não fiquem declarados diretamente nos components (fazer mais uso do styled components)
- Adriano Martins de Oliveira Sousa.