💰 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

// 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

# 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

Description
No description provided
Readme 190 KiB
Languages
Java 100%