Hello, I’m Avery

A thoughtfully curated blog covering design, culture, wellness, and modern living. A place for meaningful stories, visual inspiration, and slow reading.

Details

hello@example.com
Based in Riverbend, CA

Follow the Journey

La primera iteración de Calo

,

Hace unos días escribí que Calo era solo una idea. Una semana después, de a poco va tomando forma y ya tengo una primera versión en el teléfono y la estoy usando para anotar lo que como. Ladrillo a ladrillo…

En estos días monté varias vistas sobre SwiftData con sincronización CloudKit. La versión para macOS está contemplada para más adelante así que para cuando la implemente, será plug-and-play. También conecté la app con HealthKit para leer las calorías activas de mis entrenamientos y escribir de vuelta las calorías y macros consumidos, y lo más importante, hice funcionar la idea que dio origen a toda la app: registrar comida por chat, con foto y/o texto, sin un solo formulario de por medio.

La mecánica es simple: uno ingresa a una vista de chat (similar a iMessage o WhatsApp), escribe o sube una foto de lo que comió, la app manda la foto (comprimida y convertida a base64) y/o el texto a la API de Anthropic, junto con una instrucción de que responda en un formato específico en formato json, y esa respuesta se convierte en una entrada con un texto descriptivo de la comida, las calorías, macros, etc. Sin base de datos de alimentos, sin buscar nada a mano, simple. La clave de API se guarda en el Keychain del propio dispositivo, privadamente, sin backend propio de por medio, que es el modelo BYOK de Calo.

Todo se muestra luego en una pantalla central con arcos que se llenan según las metas diarias de calorías y macros.

El arco de ayuno (el semicírculo que se va llenando con las horas) tuvo su propio problema al principio: la fórmula del ángulo tenía el signo invertido, así que avanzaba en la dirección contraria a como uno lo lee. Nada grave, pero fue de esos errores que solo se notan mirando la app en el simulador y no el código en la pantalla.

Hubo un par de bugs más, típicos de una semana de arranque. La cámara «crasheaba» la aplicación apenas uno la escogía en la vista del chat. Todo por un permiso (NSCameraUsageDescription) que me faltó declarar en el Info.plist. Además el chat de registro no recordaba nada de lo dicho antes: cada mensaje nuevo llegaba a Anthropic sin el historial de la conversación, como si empezara de cero cada vez. Acostumbrado a los chats con Claude o ChatGPT uno creería que las APIs guardan historial y nop, no lo hacen. Supongo que hay herramientas para eso, pero es algo que aún no aprendo, así que por mientras, considerando que una descripción de comida es tan corta, lo corregí mandando el historial completo en cada solicitud.

Cuando instalamos la beta en el teléfono de la Marce noté que el layout se rompía horriblemente, ya que ella tiene configurado en su teléfono el tamaño de las letras a uno mucho más grande. Por lo que mi cierre de semana estuvo dominado por la revisión del layout en un iPhone SE (simulado claramente, no tengo cientos de iPhones para probar), donde aparecieron los primeros textos cortados y etiquetas saliéndose de su contenedor. Engorroso el proceso, pero necesario.

Con eso quedó cerrado el primer sprint: los modelos de datos, las pantallas principales, y el flujo de chat funcionando bastante bien. Lo que sigue ahora es más lento, ese trabajo de detalle que nadie nota pero que sostiene todo lo demás.

Comments (

0

)

Deja un comentario

Author

from design inspiration and digital tools to everyday reflections on simplicity. My goal isn’t just to talk about trends, but to explore how we can live and create.

Most Viewed

Categories

Discover the tools, innovations, and breakthroughs driving the

A look into capturing moments through the lens,

Stay inspired with the latest styles, personal

Insights on mindful living, self-care, and building healthy

Explore by Tags

Share your ideas with a clean, minimalist WordPress theme

Related Stories

Back to top

Descubre más desde RODRIGO SEPULVEDA

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo