Entrar na pasta /videos
App desenvolvido em React Native 0.84 Siga os comandos abaixo para executar a aplicação em sua máquina.
Requisitos para rodar o projeto:
- Node JS
- Yarn
- Cocoapods
- Ruby
Clone o projeto
git clone https://github.com/iiagodias/teste-globoEntre no diretório do projeto
cd teste-globoInstale as dependências
yarnCaso esteja utilizando MacOS
Instale os PODs
cd ios && pod installEm seguida rode o app
yarn iosCaso seja android
yarn androidRodando os testes
yarn testDeep Linking:
Android
npx uri-scheme open "appGlobo://user-details/3" --androidIOs
npx uri-scheme open "appGlobo://user-details/3" --ios- Styled Component
- Redux Toolkit
- Redux Persist
- React Navigation
- React Native Vector Icons
- Async Storage
- React Native Picker Select
- React Native Image Picker
Foi utilizado o Redux devido à sua alta usabilidade em diferentes contextos dentro do app, além da sua ampla gama de plugins como o Redux Persist, que foi utilizado neste projeto.
O uso do localStorage foi adotado para o armazenamento de dados do usuário logado. Também deixei integrada ao app a biblioteca Keychain, permitindo armazenar esses dados de forma mais segura quando houver consumo de API.
Keychain (iOS) e Keystore (Android) são sistemas nativos utilizados para armazenar informações sensíveis com segurança, como senhas, tokens e chaves criptográficas.
Sobre como garantir a segurança do ranking localmente, uma abordagem seria utilizar a tecnologia RASP (Runtime Application Self-Protection), que ajuda a proteger o app contra modificações indevidas. Com isso, seria possível bloquear o uso do aplicativo ao identificar alterações suspeitas, como mudança do nome do pacote, injeção de scripts, entre outros comportamentos maliciosos.
Ex de RASP que ja fiz implementação: https://github.com/talsec/Free-RASP-ReactNative