JM
Todos os projetos
2026 iOS

Jarbas

Um assistente pessoal nativo de iPhone, com persona de mordomo, que cruza banco, saúde e localização e usa um modelo de linguagem pra transformar isso em cuidado ativo: organiza as finanças sozinho e só fala quando tem algo útil a dizer.

01 Contexto

Tudo parte de três camadas de dados que já existem na vida de qualquer pessoa: o extrato bancário (via Open Finance), os dados de saúde concentrados no Apple Health e os lugares que ela frequenta (geolocalização).

Um modelo de linguagem transforma esses dados em cuidado ativo: além de organizar as finanças, acompanha objetivos de vida e cutuca na hora e no lugar certos.

O Jarbas nasceu de um projeto pessoal com uma pergunta por trás: como seria um app desenhado do zero assumindo que existe um modelo de linguagem no meio dele, como o motor que categoriza, nomeia, decide e conversa, em vez de um chatbot pendurado numa aba. É também um experimento de método: construí o app inteiro em par com IA, do backend ao design system, e parte do case é essa experiência de desenvolvimento.

02 Desafio

A oportunidade era inverter a carga: em vez de o usuário alimentar o app, o app entende sozinho e só fala quando tem algo útil a dizer.

Apps de finanças pessoais cobram trabalho do usuário: categorizar, renomear "PIX RECEBIDO CP :60701190" pra algo legível, marcar o que é assinatura, lembrar de abrir o app. Apps de hábitos vivem em outro silo, e os assistentes de voz não sabem nada da sua vida real. O resultado é que todo mundo abandona.

Os dados pra um assistente de verdade já existem, banco, saúde e localização, mas nenhum produto cruza os três.

03 Processo & decisões

Nunca duplicar o iPhone

A primeira regra foi nunca duplicar o iPhone. Se o Jarbas fizesse algo idêntico ao que o iOS já faz, ou exigisse que a pessoa carregasse à mão um dado que já existe numa tela do sistema, ele seria inútil.

Isso cortou features inteiras, de uma lista de lembretes comum a um controle de tempo de tela por input manual, e forçou as integrações nativas certas: HealthKit com background delivery, geofencing e notificações contextuais.

O silêncio como feature

Proatividade sem freio vira spam, e spam desinstala. O cérebro do Jarbas roda regras inegociáveis (silêncio de madrugada, no máximo três nudges por dia) e decide em duas camadas:

  • um modelo barato avalia se vale interromper;
  • um modelo forte decide o quê e como dizer.

A maioria das avaliações termina em silêncio, e isso é uma feature, não uma falha.

O menor modelo que dá conta

Essa lógica de camadas vale pro custo também. Cada tarefa usa o menor modelo que dá conta:

  • o barato faz o enriquecimento em batch das transações (título, categoria, emoji);
  • o intermediário conversa;
  • o forte entra só como juiz das intervenções.

Assim o custo de operação fica irrisório sem sacrificar qualidade onde o usuário sente.

A IA erra, e o design assume

Nenhuma heurística anda sozinha. Toda decisão automática do sistema, se isso é assinatura, se é dívida, qual é o nome da loja, tem override manual de um toque. A IA erra, e o design assume isso na interface em vez de esconder.

Alguns trade-offs vieram de propósito. A definição estrita de assinatura (mesma cobrança, mesmo valor, mesmo dia) derruba falsos positivos mas atrasa a detecção de assinaturas novas, o que a marcação manual resolve. E, como o Open Finance gratuito sincroniza cerca de uma vez por dia, desenhei o app pra ciclos, não pra tempo real.

A conversa é a interface

A conversa é a interface, e a voz é um modo dela. É por ali que o app aprende: o onboarding inteiro é um diálogo que extrai rotina, objetivos e memórias.

Voz e texto são a mesma conversa em modos diferentes, com fallback pra um TTS on-device quando o remoto falha. E o Jarbas tem regras de escrita próprias, fala como gente, sem jargão de assistente.

04 Como conduzi

Projeto solo, de ponta a ponta:

  • produto;
  • design (mockup antes de cada tela e um design system neumórfico próprio);
  • desenvolvimento iOS e backend.

Tudo em par com IA durante o ciclo inteiro, com o Claude Code como copiloto de arquitetura, código e revisão.

A primeira versão saiu de um processo spec-driven, a especificação antes do código; depois que ela ficou sólida, passei pra uma postura de vibe coding pras melhorias e a evolução.

O método é parte do resultado: dá pra uma pessoa só levar um produto desse escopo à produção quando a IA entra na execução, não só na conversa.

05 Resultado

O app está em desenvolvimento ativo e rodando em produção pessoal, no meu uso diário como usuário zero, com dados reais de dois bancos. Nesse estágio, a IA já nomeou e categorizou sozinha cerca de 700 estabelecimentos, e o custo de operação fica na casa de centavos por dia.

O maior aprendizado até aqui é que produto com IA no meio é 20% prompt e 80% engenharia de confiabilidade: retry, fallback, validação de output, override manual. A segunda versão de quase toda feature nasceu de um erro real do modelo na primeira.

Ficha técnica

Produto e design
Josue Macedo
Desenvolvimento iOS e backend
Josue Macedo

Ferramentas

SwiftUI · SwiftData · Supabase · Pluggy · Claude API · ElevenLabs · HealthKit · MapKit · Figma · Claude Design · Claude Code