Trabalho_de_LP/README.md

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