8.6 KiB
8.6 KiB
💰 Gestão de Despesas - Aplicação Android com SQLite
Uma aplicação Android moderna para gestão pessoal de despesas, desenvolvida com SQLite para armazenamento local de dados e interface Material Design.
🎯 Funcionalidades Implementadas
✅ Funcionalidades Principais
- 💰 Adicionar Despesas: Registre novas despesas com descrição, valor, categoria, data e notas
- 📋 Listar Despesas: Visualize todas as despesas em uma lista organizada e moderna
- ✏️ Editar Despesas: Modifique informações de despesas existentes
- 🗑️ Excluir Despesas: Remova despesas com confirmação de segurança
- 📊 Estatísticas: Visualize o valor total gasto e número de despesas
- 🏷️ Categorização: Organize despesas por categorias personalizadas
- 🎨 Interface Moderna: Design Material Design com gradientes e animações
✅ Funcionalidades Avançadas
- 📱 Dashboard Principal: Tela de boas-vindas com estatísticas em tempo real
- 🔍 Filtros: Filtre despesas por categoria
- 📈 Estatísticas Visuais: Cards com métricas importantes
- 🎯 Navegação Intuitiva: Botões e ações bem organizados
- 🛡️ Tratamento de Erros: Aplicação robusta que não fecha com erros
🏗️ Arquitetura do Projeto
📱 Activities (Telas)
MainActivity.java: Tela principal com dashboard e estatísticasSimpleExpensesActivity.java: Lista simplificada de despesasAddExpenseActivity.java: Formulário para adicionar/editar despesas
🗄️ Banco de Dados
DatabaseHelper.java: Gerenciador completo do SQLiteExpense.java: Modelo de dados para despesas
🎨 Interface
ExpenseAdapter.java: Adapter para RecyclerView- Layouts XML: Design moderno com Material Design
🗄️ Banco de Dados SQLite
📊 Tabela: expenses
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
id |
INTEGER | Chave primária (auto incremento) | ✅ |
description |
TEXT | Descrição da despesa | ✅ |
amount |
REAL | Valor da despesa | ✅ |
category |
TEXT | Categoria da despesa | ✅ |
date |
TEXT | Data da despesa (DD/MM/AAAA) | ✅ |
notes |
TEXT | Notas adicionais | ❌ |
🔧 Operações do DatabaseHelper
// Operações CRUD+wsqzxe
addExpense(Expense) // Adiciona nova despesa
getAllExpenses() // Retorna todas as despesas
getExpense(int id) // Retorna despesa específica
updateExpense(Expense) // Atualiza despesa existente
deleteExpense(int id) // Remove despesa
// Consultas personalizadas
getTotalExpenses() // Calcula total de despesas
getExpensesByCategory(String) // Filtra por categoria
🎨 Design e Interface
🎯 Paleta de Cores
- Primária: Azul moderno (#6366F1)
- Secundária: Azul claro (#A5B4FC)
- Acento: Laranja (#F59E0B)
- Sucesso: Verde (#10B981)
- Erro: Vermelho (#EF4444)GREA
🎨 Elementos Visuais
- Gradientes: Fundos com transições suaves
- Cards: Design Material com sombras e bordas arredondadas
- Ícones: SVG otimizados para cada função
- Animações: Transições suaves entre telas
📱 Como Usar a Aplicação
🚀 Primeiro Uso
- Abrir a aplicação → Vê a tela de boas-vindas
- Ver estatísticas → Total gasto e número de despesas
- Clicar "Começar Agora" → Vai para adicionar primeira despesa
💰 Gerenciar Despesas
- Adicionar: Botão "+" ou "Adicionar" → Formulário completo
- Preencher: Descrição, valor, categoria, data, notas
- Salvar: Confirma e retorna à tela anterior
- Ver Lista: Botão "Ver Despesas" → Lista completa
✏️ Editar/Excluir
- Na Lista: Cada despesa tem botões "Editar" e "Excluir"
- Editar: Abre o formulário com dados preenchidos
- Excluir: Confirmação de segurança antes de remover
🛠️ Tecnologias Utilizadas
- 📱 Android SDK: Desenvolvimento nativo Android
- 🗄️ SQLite: Banco de dados local persistente
- 🎨 Material Design: Interface moderna e responsiva
- 📋 RecyclerView: Lista otimizada para performance
- ☕ Java: Linguagem de programação
- 🎨 Gradientes: Design visual atrativo
📋 Requisitos do Sistema
- Android: API 24+ (Android 7.0 Nougat)
- Android Studio: Última versão estável
- Gradle: 8.13+
- Java: JDK 11+
🚀 Instalação e Execução
📥 Instalação
# 1. Clone o repositório
git clone [url-do-repositorio]
# 2. Abra no Android Studio
# 3. Sincronize o Gradle
# 4. Execute no emulador ou dispositivo
🔧 Compilação
# Compilar APK de debug
./gradlew assembleDebug
# Executar testes
./gradlew test
📁 Estrutura de Arquivos
app/src/main/
├── java/pt/epvc/gestodedespesas/
│ ├── MainActivity.java # Tela principal com dashboard
│ ├── SimpleExpensesActivity.java # Lista simplificada de despesas
│ ├── AddExpenseActivity.java # Formulário de adicionar/editar
│ ├── Expense.java # Modelo de dados
│ ├── DatabaseHelper.java # Gerenciador SQLite
│ └── ExpenseAdapter.java # Adapter do RecyclerView
│
├── res/layout/
│ ├── activity_main.xml # Layout da tela principal
│ ├── activity_simple_expenses.xml # Layout da lista de despesas
│ ├── activity_add_expense.xml # Layout do formulário
│ └── item_expense.xml # Layout do item da lista
│
├── res/drawable/ # Ícones e recursos visuais
├── res/values/
│ ├── colors.xml # Paleta de cores
│ └── strings.xml # Textos da aplicação
└── AndroidManifest.xml # Configuração da aplicação
🔧 Funcionalidades Técnicas
🛡️ Tratamento de Erros
- Try-Catch: Em todas as operações críticas
- Verificações de Null: Para evitar crashes
- Mensagens Informativas: Toast para feedback do usuário
- Fallback Seguro: Aplicação continua funcionando mesmo com erros
📊 Performance
- RecyclerView: Lista otimizada para grandes quantidades de dados
- SQLite: Consultas eficientes com índices
- Lazy Loading: Carregamento sob demanda
- Memory Management: Gerenciamento eficiente de memória
🎨 Design Responsivo
- Material Design: Seguindo guidelines do Google
- Adaptação: Funciona em diferentes tamanhos de tela
- Acessibilidade: Elementos grandes e bem contrastados
- Navegação: Fluxo intuitivo entre telas
🚀 Próximas Funcionalidades
📊 Análises e Relatórios
- Gráficos de gastos por categoria
- Relatórios mensais/anuais
- Comparativos entre períodos
- Exportação para PDF/Excel
🔍 Filtros Avançados
- Filtro por período de datas
- Busca por texto na descrição
- Ordenação por valor, data, categoria
- Filtros salvos
💾 Backup e Sincronização
- Backup automático na nuvem
- Sincronização entre dispositivos
- Restauração de dados
- Exportação/importação
🎨 Personalização
- Modo escuro/claro
- Temas personalizados
- Categorias customizáveis
- Widget para tela inicial
📝 Notas de Desenvolvimento
🎯 Decisões de Design
- Interface Simplificada: Foco na usabilidade
- Material Design: Consistência visual
- SQLite Local: Privacidade e performance
- Tratamento de Erros: Robustez da aplicação
🔧 Implementações Técnicas
- DatabaseHelper: Padrão Singleton para acesso ao banco
- Serializable: Passagem de objetos entre Activities
- RecyclerView: Performance otimizada para listas
- Material Components: Interface moderna e acessível
📱 Compatibilidade
- Android 7.0+: Suporte amplo de dispositivos
- Edge-to-Edge: Design moderno
- Responsive: Adapta-se a diferentes telas
- Acessibilidade: Suporte a leitores de tela
👨💻 Desenvolvido com ❤️
Esta aplicação foi desenvolvida como um exemplo completo de aplicação Android com SQLite, demonstrando:
- Arquitetura limpa e organizada
- Interface moderna e responsiva
- Tratamento robusto de erros
- Documentação completa em português
- Código bem comentado e explicado
Tecnologias: Android SDK, SQLite, Material Design, Java Design: Interface moderna com gradientes e animações Funcionalidades: CRUD completo, estatísticas, filtros, navegação intuitiva