myMoney é um aplicativo de registro de despesas construído com React Native, utilizando Expo Go, Firebase para login, cadastro de usuários e registros, e styled-components para estilização. A navegação entre telas é gerenciada com React Native Navigation.
O aplicativo possui quatro telas principais:
- Inclui as telas de Login e Cadastro.
- A navegação entre elas é suave e visualmente agradável, utilizando estados para transições dinâmicas.
Tela de Login | Tela de Cadastro |
---|---|
- Tela principal do aplicativo.
- Mostra:
- Nome do usuário e foto de perfil.
- Valor total em conta.
- Lista de itens cadastrados (com filtros).
- Filtros disponíveis:
- Cadastros do dia atual.
- Receitas (entradas de dinheiro).
- Despesas (saídas de dinheiro).
- Itens podem ser excluídos diretamente da lista, mas apenas os registros do dia.
- Picker estilizado para iOS e Android.
Sem Itens Cadastrados | Com Itens Cadastrados |
---|---|
- Exibe:
- Um card com o valor disponível na carteira.
- Número total de itens cadastrados.
- Contém:
- Dois inputs para entrada de dados.
- Um picker reutilizado da tela Home (evitando repetição de código).
- Ao registrar um item:
- Ele é salvo no Firebase Realtime Database.
- Atualiza automaticamente a lista de itens na tela Home, graças ao método onValue.
Imagem 4: Tela de Registro de Itens
- Exibe as informações do usuário:
- Nome, email, foto de perfil, profissão e telefone.
- Valores:
- Valor total em carteira.
- Número total de registros.
- Total de ganhos e de gastos.
- Funcionalidades:
- Editar perfil:
- Permite alterar nome, profissão, telefone e a URL da foto de perfil (funcionalidade futura).
- Registrar gastos: Redireciona para a tela Register.
- Sair: Desloga o usuário.
- Editar perfil:
Tela de Perfil | Editando o Perfil |
---|---|
Para facilitar a comunicação entre componentes, foram criados dois contextos:
-
authContext
:- Gerencia e distribui informações do usuário, como nome, email, foto de perfil e saldo em conta.
-
historicContext
:- Gerencia os itens cadastrados, incluindo:
- Lista de itens.
- Valor total.
- Receita total.
- Gasto total.
- Gerencia os itens cadastrados, incluindo:
As principais dependências utilizadas são:
lucide-react-native
: Para ícones.styled-components
: Para estilização.@react-navigation/native
: Para navegação.@react-navigation/bottom-tabs
: Para navegação em abas.@react-native-picker/picker
: Para criação de pickers.@react-native-async-storage/async-storage
: Para salvar a sessão do usuário.
- Upload direto de imagens para o perfil.
- Gráficos para análise de gastos e receitas.
Este projeto está sob a licença MIT. Sinta-se à vontade para usá-lo e contribuir!