Construido y publicado por Pernovatio

MyFitControl

MyFitControl

Una plataforma de entrenamiento multilingüe para entrenadores y sus clientes — construida, publicada en ambas tiendas y mantenida en producción.

El problema

La mayoría de las aplicaciones de entrenamiento atienden a dos perfiles: quien sigue una rutina genérica, o el profesional que paga caro por un sistema de gestión completo. Quien queda entre ambos perfiles — el entrenador independiente con quince clientes, o la persona que solo quiere organizar bien su semana — queda mal atendido por ambos.

MyFitControl se hizo para ese medio. Un producto, dos modos, y sin dar por sentado que todo el mundo habla inglés.

Qué hace

El entrenador crea programas, se los asigna a sus clientes, adjunta vídeos cortos de demostración a ejercicios concretos y sigue el progreso sin tener que perseguir a nadie por mensaje. Quien entrena sin entrenador tiene el mismo planificador y el mismo historial, por su cuenta.

Un asistente dentro de la aplicación explica los números que el sistema calcula — volumen, recuperación, objetivos nutricionales — en el idioma del usuario. Las métricas se calculan en código; el asistente solo las explica. Ese orden importa, y es la razón de que las respuestas sigan siendo correctas.

Cómo está construido

El cliente es React Native sobre Expo, en TypeScript, publicado en ambas tiendas mediante EAS. El backend es Supabase — Postgres con row-level security, Auth y Edge Functions para todo lo que no puede ejecutarse en el dispositivo.

Las notificaciones son la parte que la mayoría de los proyectos hace mal. El envío lo disparan webhooks de base de datos hacia edge functions: el mensaje sale porque cambió una fila, no porque hubiera una pantalla abierta. El temporizador de descanso además programa una notificación del propio sistema operativo como respaldo, para que la alarma suene con el teléfono bloqueado y los temporizadores de JavaScript suspendidos.

El cobro usa Stripe en la web y RevenueCat en las aplicaciones, con un único estado de suscripción compartido entre las tres plataformas.

La localización como arquitectura

Seis idiomas no es un archivo de traducción pegado al final. Nombres de ejercicios, tipos de equipamiento de cardio, valores enumerados, respuestas de la IA y las fichas de las tiendas se adaptan a cada idioma. Acertar con eso pronto cuesta mucho menos que rehacerlo después, y es lo que permite entrar en un mercado nuevo sin requerir un nuevo proyecto de ingeniería.

Situación actual

En producción en ambas tiendas y mantenida — versiones, ciclos de revisión de las tiendas, migraciones de esquema, correcciones. Publicar la primera versión es la parte corta del trabajo.

¿Quieres algo así?

Cuéntame qué tiene que hacer el software y qué pasa hoy cuando no lo hace.