Estudo de caso - Um leitor de cardápio que escolhe o que pedir, todo no aparelho
Um app de iOS que lê o cardápio de um restaurante a partir de uma foto, cruza com o que você registrou hoje no Apple Saúde e ordena os pratos. O modelo no aparelho lê; o Swift faz as contas.
- Cliente
- Prandial
- Ano
- Serviço
- Desenvolvimento iOS, IA no aparelho

Visão geral
O que pedir, a partir de uma foto
O Prandial é um app de iOS que diz o que pedir num restaurante. Ele lê o que você já registrou hoje no Apple Saúde, lê o cardápio a partir de uma única foto e ordena os pratos de acordo com o que ainda cabe no seu dia.
Tudo roda no iPhone. Não há conta nem código de rede, e o acesso ao Saúde é só de leitura. O modelo no aparelho não faz conta nenhuma: ele organiza o cardápio, encaixa cada prato numa faixa aproximada e escreve um motivo curto para cada sugestão. O Swift calcula todos os números e o ranking.
- 100% no aparelho
- Saúde, só leitura
- Faixas de caloria, nunca números exatos
- O modelo lê, o Swift ordena
- Alérgenos separados
Como funciona
O modelo lê. O Swift decide.
Ler a foto
O reconhecimento de documentos do Vision lê o cardápio, dá preferência a tabelas e listas e recorre ao reconhecimento de texto simples quando precisa. O texto é dividido em trechos que cabem na janela de contexto do modelo.
Organizar os pratos
O modelo transforma cada trecho em pratos com nome, descrição, seção e preço, além de uma faixa de caloria e do macro predominante. As respostas viram enums rígidos na hora. Se o modelo não estiver disponível ou recusar, um parser de linhas com preço assume.
Separar alérgenos
As marcações de conflito do modelo se somam a uma busca por palavra inteira, para que “ham” nunca case com “champagne”. Pratos marcados vão para o grupo “confirme com o restaurante” e nunca são recomendados. A detecção é só um indicativo, e o app pede para confirmar os ingredientes.
Ordenar em Swift
O Swift subtrai das suas metas o que o Saúde diz que você já comeu e divide o resto pelas refeições que faltam no dia. Cada prato que sobra recebe uma nota, e os três melhores voltam. Mudar o contexto da refeição refaz só esta etapa.
Explicar a escolha
Uma segunda passada escreve, em streaming, uma ou duas frases sobre por que cada sugestão encaixa. O prompt já leva os números calculados pelo Swift e proíbe o modelo de inventar algum. Se a passada falhar, o resumo do próprio Swift continua na tela.
O app
Da foto do cardápio a três sugestões
A gravação é um escaneamento real no simulador do iOS 27: uma foto de cardápio escolhida na biblioteca, lida, analisada pelo modelo no aparelho e ordenada. As esperas do seletor de fotos e do modelo foram encurtadas; o resto passa como rodou.
As telas estáticas vêm do modo de screenshots de debug do app, que roda um cardápio fixo de bistrô pelo motor de ranking real, com as explicações escritas de antemão.

Escaneamento real · da foto às sugestões

Resultados · três sugestões

Hoje · o que sobra

Confirme com o restaurante

Ajustes · no aparelho

Introdução

Configuração · Saúde, só leitura

Histórico
Stack e prova
Nada sai do celular
Menos de 400, de 400 a 700 ou mais de 700 kcal. Nenhum prato ganha um número exato.
Na lista do que evitar, além de texto livre. A detecção é só um indicativo: confirme com o restaurante.
Funções de Swift Testing, entre elas as que impedem calorias exatas por prato na interface
O app não tem nenhum código de rede
Tecnologias
- Swift
- SwiftUI
- SwiftData
- HealthKit
- Vision
- Foundation Models
- Swift Testing
SwiftUI e SwiftData para o app e o histórico de escaneamentos; HealthKit com acesso só de leitura a calorias, proteína, carboidrato e gordura; Vision para o texto do cardápio; o framework Foundation Models, da Apple, para organizar os pratos e escrever as explicações. Sem a Apple Intelligence o app continua funcionando, com a lista de pratos, os filtros por palavra-chave e um aviso explicando por que as sugestões com IA estão desligadas.