Repository navigation
v0.1.0
Primeira versão pública. As fases F0, F1 e F2 do
roadmap entram inteiras; F3 e F4 ficam de fora.
Adicionado
Contas e lançamentos (F0)
- Contas de carteira, corrente, poupança, cartão e investimento, com saldo
calculado a partir do lançamento — não guardado. - Transferência como uma linha, não duas: o pagamento de fatura sai de graça
daí, sem código especial de cartão. - Dez categorias semeadas na instalação, com hierarquia de um nível.
- Lançamento rápido em três toques, parcelamento em N linhas com a sobra de
centavos na última, e validação que devolve todos os erros de uma vez. - Dashboard com saldo total, dívida do cartão, resultado do mês e comparação com
o mês anterior.
Cartão, orçamento e análise (F1)
- Fatura derivada do fechamento, nunca uma tabela:
closingDayrestrito a 1–28
mata a classe de bug do dia 31. - Tetos por categoria, com estado de atenção e de estouro, e ritmo por dia.
- Recorrências com geração de ocorrências e efetivação em lote.
- Relatórios: pizza de despesas por categoria e a série dos últimos 12 meses.
- Exportação em CSV, base completa em JSON, e backup cifrado com AES-256-GCM
sob chave derivada por PBKDF2 (600 mil iterações). - Conta de investimento com rendimento mês a mês, taxa fixa ou percentual do CDI,
com o CDI lido da série pública do Banco Central.
Importação (F2)
- OFX e CSV, com farejamento de separador, decimal e formato de data, e tela de
mapeamento que aceita correção manual. - Deduplicação por chave estável, auto-categorização por regras de estabelecimento,
e desfazer por lote. - Nada é gravado antes da tela de revisão.
Segurança e privacidade
- Banco cifrado com SQLCipher, chave de 32 bytes embrulhada no Android Keystore.
- Bloqueio biométrico opcional, com fallback para a credencial do aparelho.
- Sem backend, sem login, sem analytics. Uma única permissão de rede, para um
único host —api.bcb.gov.br, num GET sem parâmetro e sem corpo. allowBackup="false": o histórico não sai do aparelho por conta do sistema.
Acessibilidade
- Alvos de toque ≥ 48dp, contraste verificado por teste que recalcula da paleta,
seleção sinalizada por preenchimento e não só por cor, e valores monetários
lidos por extenso.
Notas
minSdk 26,targetSdk 36.java.timenativo, sem desugaring.- O APK publicado é assinado; confira o
.sha256que acompanha a release. - Migrações de schema são explícitas e versionadas em
app/schemas/.
fallbackToDestructiveMigrationnão existe no projeto e não vai existir.