Uma releitura moderna da Calculadora do Cidadão, o app oficial do Banco Central do Brasil para cálculos financeiros. O RealCalc parte da mesma lógica de cálculo (juros compostos, depósitos regulares, financiamento), mas repensa a experiência do zero — identidade visual própria, hierarquia clara entre ações, e uma solução pro problema que o app original nunca resolveu bem: em cada calculadora, qualquer um dos campos pode ser a incógnita, e a interface original não deixa isso óbvio.
Projeto pessoal e não-oficial. Sem qualquer vínculo com o Banco Central do Brasil — construído como estudo de produto, UX e arquitetura em Flutter.
Num formulário de financiamento, por exemplo, o usuário pode preencher valor, prazo e taxa pra descobrir a prestação — ou preencher valor, prazo e prestação pra descobrir a taxa. Qualquer um dos 4 campos pode ser o resultado, dependendo de qual a pessoa deixa vazio. A Calculadora do Cidadão não sinaliza isso visualmente: todos os campos parecem iguais, e a pessoa só descobre qual foi calculado depois de já ter preenchido tudo.
O RealCalc resolve isso com estado visual por campo, não só por tela:
- Vazio e é o único vazio → destaque âmbar, sinalizando "essa é a incógnita".
- Calculado → destaque verde, mostrando exatamente qual campo o app resolveu.
- 2 ou mais campos vazios ao mesmo tempo → destaque vermelho + aviso, porque não dá pra saber qual calcular.
- Preenchido normalmente → neutro, sem competir visualmente com os outros dois estados.
Essa lógica vive num Cubit dedicado por calculadora, reagindo em tempo real a cada mudança de texto — não é um estado fixo de tela, é recalculado a cada tecla.
- Cálculo de valor futuro, taxa, prazo e valor inicial em cenários de juros compostos.
- Simulação de depósitos regulares com capitalização composta.
- Fluxo de financiamento com os 4 estados de campo descritos acima.
- Card de métrica com a taxa Selic atual, variação desde o último ajuste do Copom e uma sparkline de tendência — com estados de carregamento e offline (mostra o último valor salvo, ou um estado de "tentar novamente").
- Interface com design system próprio: paleta de cores (
AppColors, umaThemeExtensioncom os dois temas), tipografia e ícones centralizados, sem cor ou estilo hardcoded espalhado pelos widgets. - Testes unitários, de widgets e de módulos (incluindo a fiação de injeção de dependência do
flutter_modular).
Cada calculadora tem a própria cor, e a resposta aparece em frase no topo da tela. O app segue o tema do sistema, e o botão de sol e lua na tela inicial troca o tema. A escolha fica salva.
| Claro | ![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|---|
| Escuro | ![]() |
![]() |
![]() |
![]() |
![]() |
| Tecnologia | Uso |
|---|---|
| Flutter/Dart | Aplicação multiplataforma |
flutter_bloc |
Estado e eventos da apresentação |
flutter_modular |
Rotas e injeção de dependências |
Dio |
Cliente HTTP |
equatable |
Comparação de estados e objetos |
intl |
Formatação de valores e datas |
| Manrope e Bricolage Grotesque | Tipografia empacotada no app para uso offline |
mocktail e bloc_test |
Testes |
API de terceiros: API do Banco Central do Brasil, usada como fonte de dados da taxa Selic.
flowchart LR
UI[Pages e Widgets] --> C[Cubits]
C --> U[Casos de uso]
U --> D[Entidades e validações]
U --> R[Repositórios]
R --> A[Adapters]
A --> API[API do Banco Central]
O código é organizado por módulos de negócio dentro de lib/modules e por componentes compartilhados em lib/core e lib/shared. A regra de negócio não depende diretamente do Flutter ou do cliente HTTP.
Pré-requisitos:
- Flutter compatível com Dart
^3.10.4. - Um dispositivo ou emulador configurado.
- Acesso à internet para carregar a Selic.
flutter pub get
flutter runComandos úteis:
flutter analyze
flutter test
dart format lib testlib/
├── core/ # Base técnica, temas, rotas, erros e abstrações
├── modules/
│ ├── home/ # Tela inicial e indicadores
│ ├── metrics/ # Consulta e transformação da Selic (janela de ~90-120 dias)
│ └── financial_calculators/ # Cálculos, cubits e telas financeiras
├── shared/ # Modelos compartilhados, como resposta da API
└── main.dart # Ponto de entrada
test/ # Testes organizados por módulo
- Correção de valores por índice (IPCA, IGP-M, poupança)
- Comparação SAC vs. Price
- Simulação de amortização extra
- Histórico de cálculos
- Modo claro
- Crie uma branch para a alteração.
- Mantenha a regra de negócio em casos de uso e entidades.
- Adicione ou atualize os testes do comportamento alterado.
- Execute
dart format,flutter analyzeeflutter test. - Abra um pull request descrevendo o comportamento e os cenários validados.
Este projeto está licenciado sob a GNU General Public License v3.0.
RealCalc — Financiamento, aplicações e Selic em um só lugar
Copyright (C) 2026 Rodrigosdk
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
O texto completo da licença está no arquivo LICENSE deste repositório.










