Mosey
Um app de viagem feito pra uma viagem só: 27 dias pela Dinamarca e Noruega. iOS nativo, anti-itinerário, com sugestões contextuais e um plano diário gerado por IA no próprio dispositivo.
- 60
- Lugares curados
- 42
- Eventos reunidos
- $0
- Custo de inferência da IA
Desafio
Tenho uma viagem de 27 dias pra Dinamarca e Noruega chegando em julho, e eu não queria um app de itinerário rígido. Queria algo que funcionasse com o jeito que eu de fato viajo: chegar em algum lugar, se virar ali, documentar depois.
Todo app de viagem que testei era ou uma ferramenta de planejamento (calendário primeiro, de cima pra baixo) ou uma ferramenta de descoberta (um mapa com avaliações). Nenhum respondia a pergunta que eu de fato faço toda manhã: o que eu tô a fim de fazer agora, dado o tempo, onde estou e o que ainda não fiz.
Abordagem
Feito pra um usuário e uma viagem. Essa restrição cortou a maioria das decisões: sem camada social, sem login, sem suporte a múltiplas viagens, tudo local com SwiftData. A aba Today começa pela intenção, não por um calendário; uma aba Plan cobre os dias em que quero estrutura; um Journal registra as visitas depois do fato.
A IA era pra rodar na API do Claude, até que uma rodada de auto-plano queimou minha cota numa sessão só. Movi toda a pilha de inferência pros Foundation Models no próprio dispositivo da Apple no iOS 26: sem API key, sem custo, funciona offline. Pra um app pessoal, era a decisão certa de qualquer jeito.
Resultado
O app compila limpo e roda no iOS 26. O auto-plano gera um itinerário de oito dias e onze paradas inteiramente no dispositivo. 60 lugares curados em Copenhague, Herlev, Billund e Oslo; 42 eventos reunidos pra janela da viagem.
Não está na App Store. Roda em provisionamento gratuito até eu decidir se a taxa de desenvolvedor vale a pena. A viagem começa em julho, e esse é o teste de verdade.
Pra quem eu desenhei
Um usuário: eu. Isso soa como desculpa até você notar que a maioria dos apps de viagem falha justamente porque é feita pra todo mundo.
Meu padrão: não reservo muita coisa com antecedência, me movo de bike e transporte público, como onde eu acabo parando e documento o dia depois. Eu queria que o app apoiasse isso, não que brigasse contra. O enquadramento anti-itinerário não é slogan, é por isso que a aba Today abre com "o que você tá a fim de fazer hoje?" em vez de uma agenda. A aba Plan existe pros dias em que eu quero estrutura, mas é opcional.
A decisão-chave: IA no dispositivo
O plano original usava a API do Claude tanto pro chat de concierge quanto pro auto-plano estruturado. Isso durou até a primeira rodada de auto-plano de verdade esgotar minha cota mensal numa sessão.
Movi tudo pros Apple Foundation Models. Isso significou subir o alvo de iOS de 18 pra 26, o que é um custo real: quem está num iOS mais antigo não consegue instalar. Pra um app pessoal, tudo bem. A geração guiada produz o plano dia a dia no dispositivo, em streaming, sem chamada de rede e sem conta pra pagar. O modelo é bom o suficiente pro trabalho. Não estou pedindo pra ele substituir um agente de viagens, só pra transformar uma lista de lugares numa ordem diária que faça sentido.
Onde está agora
O build está limpo, o core funciona, a viagem ainda não aconteceu, e eu sou honesto de que essa é a parte inacabada.
Três coisas que sei que estão cruas: um punhado de force-unwraps que podem crashar num dia em que eu não esteja perto de um laptop; um auto-plano que às vezes repete os títulos dos dias; e cerca de cinquenta cores cravadas na mão que deveriam ser tokens. Fiz a auditoria e anotei tudo, mas não apliquei os consertos. O widget e a Live Activity estão prontos, mas desativados por ora. A sincronização com o CloudKit espera a decisão da conta de desenvolvedor, que preciso tomar antes de julho pra que a pessoa que viaja comigo consiga um build no TestFlight.
Telas selecionadas
" Construir um app pra uma viagem específica que você está prestes a fazer é um tipo estranho de pressão: um prazo duro, um usuário real, e o que está em jogo é exatamente uma viagem. As coisas que pulei (social, compras, múltiplas viagens) seguem puladas, porque não existe versão disso em que eu me arrependa delas. "
Digital Reports
→Relatórios de batelada pra moagem industrial: 36 frames hi-fi no Figma mais um protótipo em código funcionando à frente do roadmap de produção.