Aplicativo Flutter para Android que automatiza o registro de gastos mensais em uma planilha do Google Sheets.
Este aplicativo permite adicionar gastos diretamente na planilha "Gastos do Mês" do Google Sheets de forma rápida e intuitiva. Os gastos são automaticamente organizados por mês nas respectivas abas da planilha.
- ✅ Autenticação OAuth 2.0 com Google
- ✅ Detecção automática do mês pela data selecionada
- ✅ Inserção automática nas colunas corretas (K-O)
- ✅ Formatação automática de datas (DD/MM) e valores (R$ XX,XX)
- ✅ Interface Material Design 3 moderna e intuitiva
- ✅ Suporte completo ao português brasileiro
- ✅ Cache de credenciais para acesso mais rápido
- ✅ Feedback visual em todas as operações
A planilha deve ter a seguinte estrutura:
- Abas: Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro
- Seção "Gastos do Mês": Colunas K a O, começando na linha 9
- Coluna K: Nome da compra
- Coluna L: Data (DD/MM)
- Coluna M: Tipo/Meio de pagamento
- Coluna N: Categoria
- Coluna O: Valor (R$)
- Dispositivo: Poco F7
- Sistema: Android 14 (HyperOS)
- Tela: AMOLED 6.67"
- SDK Mínimo: Android 6.0 (API 23)
- SDK Alvo: Android 14 (API 34)
Antes de começar, você precisará:
- Flutter SDK instalado (versão 3.10.4 ou superior)
- Android SDK configurado
- Conta Google com acesso à planilha
- Google Cloud Project com Google Sheets API habilitada
- Credenciais OAuth 2.0 configuradas
git clone https://github.com/BlackSardes/Planilha_Project.git
cd Planilha_ProjectSiga o guia detalhado em SETUP.md para:
- Criar projeto no Google Cloud Console
- Habilitar Google Sheets API
- Configurar tela de consentimento OAuth
- Criar credenciais OAuth 2.0
- Baixar o arquivo credentials.json
- Baixe o arquivo
credentials.jsondo Google Cloud Console - Copie para
assets/credentials.json
cp /caminho/para/seu/credentials.json assets/credentials.jsoncredentials.json! Ele já está no .gitignore.
Edite lib/config/sheets_config.dart e substitua:
static const String spreadsheetId = 'SEU_ID_DA_PLANILHA_AQUI';Para obter o ID:
- Abra sua planilha no Google Sheets
- Copie o ID da URL:
https://docs.google.com/spreadsheets/d/[ID_AQUI]/edit
flutter pub getflutter run- Abra o aplicativo
- Aguarde a tela de autenticação do Google
- Faça login com sua conta Google
- Autorize o aplicativo a acessar sua planilha
- Aguarde a confirmação de conexão
- Na tela inicial, toque no botão "Adicionar Gasto"
- Preencha os campos:
- Nome da compra: Ex: "Supermercado"
- Data: Selecione a data (define automaticamente o mês)
- Meio de pagamento: Selecione da lista
- Categoria: Selecione da lista
- Valor: Digite o valor (ex: 150.00)
- Toque em "SALVAR GASTO"
- Aguarde a confirmação
O gasto será automaticamente adicionado na aba do mês correspondente à data selecionada.
Meios de Pagamento:
- Inter - D / C
- Caixa - D / C
- Pago - D / C
- PicPay - D / C
- Nubank - D / C
Categorias:
- Assinaturas
- Necessidades
- Alimentação
- Transporte
- Lazer
- Saúde
- Educação
- Outros
lib/
├── config/
│ └── sheets_config.dart # Configurações da planilha e OAuth
├── models/
│ └── expense.dart # Modelo de dados do gasto
├── providers/
│ └── expense_provider.dart # Gerenciamento de estado
├── screens/
│ ├── home_screen.dart # Tela principal
│ └── add_expense_screen.dart # Tela de adicionar gasto
├── services/
│ └── google_sheets_service.dart # Integração com Google Sheets
└── main.dart # Ponto de entrada da aplicação
assets/
└── credentials.json # Credenciais OAuth (não commitado)
docs/
├── GOOGLE_CLOUD_SETUP.md # Guia visual do Google Cloud
└── SHA1_GUIDE.md # Guia para obter SHA-1
Solução:
- Verifique se o arquivo
credentials.jsonestá emassets/ - Confirme se o
client_ideclient_secretestão corretos - Verifique se adicionou o redirect URI correto no Google Cloud Console:
com.blacksardes.expense_tracker://oauth
Solução:
- Compartilhe a planilha com a conta Google que você está usando
- Verifique se a Google Sheets API está habilitada no projeto
- Confirme se os escopos OAuth estão corretos
Solução:
- Verifique se o
spreadsheetIdemsheets_config.dartestá correto - Confirme se a planilha existe e você tem acesso
- Verifique se as abas dos meses estão nomeadas corretamente (Janeiro, Fevereiro, etc.)
Solução:
flutter clean
flutter pub get
flutter runSolução:
- Verifique se as permissões estão corretas no
AndroidManifest.xml - Confirme o deep link:
com.blacksardes.expense_tracker://oauth - Para credenciais Android, adicione o SHA-1 do certificado (veja docs/SHA1_GUIDE.md)
- ✅ OAuth 2.0 para autenticação segura
- ✅ Credenciais armazenadas localmente com
SharedPreferences - ✅ Tokens de acesso renovados automaticamente
- ✅ Arquivo
credentials.jsonnão commitado no git - ✅ Apenas escopos necessários solicitados
- Framework: Material Design 3
- Cor Primária: Azul (#1976D2)
- Bordas: Arredondadas (12px)
- Elevação: Sutil (2dp)
- Tema: Claro
- Ícones: Material Icons
- Tipografia: Roboto
Contribuições são bem-vindas! Sinta-se à vontade para:
- Fazer fork do projeto
- Criar uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commitar suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Fazer push para a branch (
git push origin feature/MinhaFeature) - Abrir um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
BlackSardes
- GitHub: @BlackSardes
Se você encontrar algum problema ou tiver dúvidas:
- Verifique a seção Troubleshooting
- Consulte SETUP.md para configuração detalhada
- Abra uma issue no GitHub
Feito com ❤️ para facilitar o controle de gastos pessoais