Este projeto é uma implementação simplificada de um sistema de compras, o projeto visa fornecer os recursos básicos que devem ser encontrados em um aplicativo de comércio eletrônico móvel, onde os usuários podem comprar e vender produtos. Para navegar pelo aplicativo, os usuários precisam se autenticar. Depois de conectado, os usuários podem percorrer a lista de produtos disponíveis, adicionar produtos diferentes ao carrinho e fazer pedidos. Os usuários também podem adicionar, editar, remover seus próprios produtos na loja principal.
O aplicativo contém um sistema de autenticação simples implementado usando a API REST AUTH FIREBASE para o back -end. Se o processo de autenticação for bem -sucedido, um token exclusivo será enviado do back -end ao usuário em preocupação, o token será armazenado localmente no dispositivo e expirará exatamente após 1H de seu recebimento. Quando expirado, o token é excluído do dispositivo e o usuário será automaticamente assinado e solicitado para a tela de login. Caso contrário, se algo deu errado com o processo de autenticação, a mensagem de erro adequada será exibida na tela.
Para garantir que as credenciais certas sejam fornecidas sempre que o usuário inserir alguns dados, todos os formulários neste projeto contêm alguns algoritmos básicos de validação que são reutilizados sempre que a validação for necessária.
A maioria dos dados neste projeto (produtos, pedidos, usuários) é armazenada no banco de dados em tempo real do Firebase. Alguns outros dados específicos do usuário (produtos favoritos e autônomos) são armazenados localmente no dispositivo usando asyncStorage.
Toda a navegação neste projeto é construída com o React Naveigy v5.
The app contains different types of animations on different screens to provide a smoother user experience, all animations are implemented using the React Native Reanimated library, which means the vast majority of calculations required to animate different style properties are all done in the UI Thread in the native side, so the bridge between native and react native is very infrequently crossed, therefore, animtions are never interrupted even if the JS Thread is heavily busy, resulting in smooth animations that funcionaria em 60fps, mesmo em dispositivos de baixo custo.
Todos os ativos de design usados neste aplicativo (telas, componentes, ícones ...) são feitos pelo proprietário deste projeto.
Para executar o projeto, execute localmente os seguintes comandos em ordem:
Clone o projeto localmente
$ git clone https://github.com/abdoutech19/shop-app.git
Navegue para o diretório raiz do projeto
$ cd shop-app
Instalar todas as dependências
$ yarn install || npm install
Execute o projeto no modo de depuração
$ npx react-native run-android
Ou execute o projeto no modo de liberação para uma experiência mais suave
$ npx react-native run-android --variant=release
Nota: Este projeto usa o mecanismo Hermes JavaScript para melhorar o tempo de inicialização, diminuir o uso da memória e reduzir o tamanho do aplicativo. Para que essas melhorias entrem em vigor, o aplicativo deve estar em execução no modo de liberação ; caso contrário, Hermes não terá nenhum efeito na melhoria do desempenho no modo de depuração , de fato, alguns desenvolvedores notaram resultados mais lentos com o mecanismo Hermes ativado no modo de depuração .
Para testar o aplicativo em seu dispositivo Android, você pode baixar o arquivo .apk aqui: compras.
Distribuído sob a licença do MIT. Consulte a licença para obter mais informações.
Envie -me um e -mail para: [email protected].