Nas últimas semanas, desenvolvi o TinyDebt, um app pequeno para acompanhar dívidas, empréstimos e pagamentos. Quero compartilhar algumas decisões técnicas por trás dele, caso sejam úteis para quem cria apps pequenos e focados.
🧩 Por que criei o app
Eu vivia esquecendo pequenas dívidas entre amigos, e os apps existentes pareciam pesados: cadastro, anúncios por toda parte e recursos financeiros complexos.
Eu queria algo que:
- abrisse instantaneamente
- permitisse adicionar uma dívida em 3–5 segundos
- funcionasse offline
- continuasse simples para sempre
Assim nasceu o TinyDebt.
⚙️ Tecnologias
O TinyDebt foi feito para ser leve:
- React Native (Expo) para dispositivos móveis
- Abordagem local-first com AsyncStorage
- Sem backend: os dados ficam no dispositivo (Firebase apenas para backups)
- TypeScript em todo o projeto
- Interface mínima com componentes próprios em vez de bibliotecas de UI
- Distribuição na App Store e no Google Play via EAS Build
Sem contas de usuário, sem analytics e sem dependências externas além do essencial.
🗂️ Modelo de dados
Cada registro de dívida tem esta estrutura:
type Debt = {
id: string;
name: string;
amount: number;
type: "owed" | "borrowed";
createdAt: number;
history: Repayment[];
};
type Repayment = {
amount: number;
date: number;
};Manter tudo serializável facilita o armazenamento e as migrações.
🧠 Experiência local-first
O TinyDebt não depende de um servidor, então:
- as ações são aplicadas instantaneamente
- não há estados de carregamento ou sincronização
- o app continua rápido até em celulares antigos
Isso funciona perfeitamente para um pequeno utilitário pessoal.
🎨 Filosofia da interface
Eu queria que o app transmitisse calma:
- cores neutras e simples
- sem gráficos ou painéis
- sem excesso de elementos: uma tela faz 90% do trabalho
- áreas de toque acessíveis para inserir dados rapidamente
Apps pequenos não precisam de visuais complexos para serem úteis.
📦 Publicação
- Disponível na App Store
- Disponível na Google Play
Ainda quero manter o escopo pequeno — esse é justamente o objetivo.
🙌 Comentários são bem-vindos
Se você desenvolve apps móveis ou tem ideias sobre utilitários local-first, adoraria receber seu feedback. O app está sempre melhorando.
