# 💰 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ísticas - **`SimpleExpensesActivity.java`**: Lista simplificada de despesas - **`AddExpenseActivity.java`**: Formulário para adicionar/editar despesas ### 🗄️ **Banco de Dados** - **`DatabaseHelper.java`**: Gerenciador completo do SQLite - **`Expense.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** ```java // 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** 1. **Abrir a aplicação** → Vê a tela de boas-vindas 2. **Ver estatísticas** → Total gasto e número de despesas 3. **Clicar "Começar Agora"** → Vai para adicionar primeira despesa ### 💰 **Gerenciar Despesas** 1. **Adicionar**: Botão "+" ou "Adicionar" → Formulário completo 2. **Preencher**: Descrição, valor, categoria, data, notas 3. **Salvar**: Confirma e retorna à tela anterior 4. **Ver Lista**: Botão "Ver Despesas" → Lista completa ### ✏️ **Editar/Excluir** 1. **Na Lista**: Cada despesa tem botões "Editar" e "Excluir" 2. **Editar**: Abre o formulário com dados preenchidos 3. **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** ```bash # 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** ```bash # 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