FitCharm
Diario

Proceso

La IA interpreta, el código calcula

Cómo construimos FitCharm para que tus números sean exactos, funcione sin señal y la inteligencia artificial nunca haga las cuentas.

Equipo FitCharm · · 3 min de lectura

Cuando una app entiende lo que escribes, es tentador dejar que la inteligencia artificial haga todo: entender el mensaje, sumar las calorías, decidir si mantuviste la racha. Lo probamos. Y aprendimos que un modelo de lenguaje es brillante para entender a una persona y poco confiable para hacer una suma.

Así que FitCharm se construyó sobre una regla simple: la IA interpreta, el código calcula.

Dos trabajos distintos

Entender «3x8 sentadilla 60, la última al fallo» es un problema de lenguaje. Sumar el volumen de la semana, contar los días de tu racha o saber si alcanzaste una medalla es un problema de aritmética. Mezclarlos produce errores que no se ven: un total que cambia un poco cada vez, una racha que se rompe sin razón.

Por eso los separamos.

  • Interpretar: convertir lo que escribiste en datos con una forma exacta, como ejercicio, series, repeticiones, peso o alimento.
  • Calcular: totales, macros, rachas, récords, logros y límites. Siempre con código predecible, probado, que da el mismo resultado con los mismos datos.

Contratos estrictos

Hoy, la mayoría de los mensajes los entiende un intérprete que corre en tu teléfono, sin conexión. Para lo que no entienda, la app tendrá ayuda de inteligencia artificial. Esa parte todavía no está conectada: la estamos preparando con cuidado.

Lo que ya existe es el contrato. Cualquier modelo que usemos tendrá que responder con una estructura definida de antemano, y cada respuesta se valida con zod antes de tocar tus registros. Si no cumple el contrato, no entra. El modelo nunca recibe la tarea de sumar ni de decidir un logro: solo dice qué quisiste decir.

Hay otras reglas que no cambian.

  • La app nunca habla directamente con un proveedor de IA. Las llaves viven solo en el servidor.
  • Antes del primer envío a la IA, la app te pide permiso.
  • Del uso del modelo se guardan solo datos técnicos, como la hora y la extensión del mensaje. Nunca su contenido.
  • Si la IA no está disponible, el intérprete local sigue funcionando.

Sin señal, sin problema

Los gimnasios tienen fama de mala cobertura, y con razón. Una app que necesita internet para guardar una serie falla justo donde más se usa.

FitCharm escribe primero en tu teléfono. Cada registro se guarda en una base de datos cifrada en el propio equipo, junto con una nota en una cola de salida, en un mismo paso. Cuando vuelve la señal, la app envía la cola por lotes y trae lo que hayas registrado desde otro dispositivo.

Construir esto en una app móvil multiplataforma tuvo sus retos.

  • Conflictos: si editaste lo mismo en dos equipos, gana el cambio más reciente.
  • Logros: tus medallas no se reemplazan, se combinan. Lo que ganaste en un equipo nunca se pierde por sincronizar otro.
  • Reintentos: si el envío falla, la app espera un poco más cada vez, sin gastar batería en intentos inútiles.
  • Cuentas: si otra persona inicia sesión en el mismo teléfono, no ve nada tuyo.

Configuración, no código

Cada límite, umbral y regla de plan vive como configuración versionada, no escrita a mano en la app. Eso nos deja ajustar un tope de misiones o adaptar un texto a otro país sin publicar una versión nueva, y garantiza que la misma regla se aplique igual en el teléfono y en el servidor.

Por qué importa

Tus números son tuyos y tienen que ser correctos. Una racha que se rompe por un error de cálculo no es un detalle técnico: es una razón para dejar de usar la app. Separar interpretar de calcular, y escribir primero en el teléfono, es nuestra forma de ganarnos tu confianza todos los días.