Le problème
La plupart des applications d’entraînement visent deux profils : la personne qui suit un programme générique, ou le professionnel qui paie cher pour une suite de gestion complète. Celui qui se trouve entre les deux — l’entraîneur indépendant avec quinze clients, ou la personne qui veut simplement bien planifier sa semaine — est mal servi par les deux.
MyFitControl a été conçu pour ce milieu. Un produit, deux modes, et sans présumer que tout le monde parle anglais.
Ce qu’il fait
L’entraîneur crée des programmes, les attribue à ses clients, joint de courtes vidéos de démonstration à des exercices précis et suit la progression sans relancer personne par message. Celui qui s’entraîne sans entraîneur dispose du même planificateur et du même historique, en autonomie.
Un assistant intégré explique les chiffres que l’application calcule — volume, récupération, cibles nutritionnelles — dans la langue de l’utilisateur. Les mesures sont calculées dans le code; l’assistant ne fait que les expliquer. Cet ordre compte, et c’est pourquoi les réponses restent justes.
Comment c’est bâti
Le client est en React Native sur Expo, en TypeScript, publié dans les deux boutiques au moyen d’EAS. Le backend est Supabase — Postgres avec row-level security, Auth et Edge Functions pour tout ce qui ne doit pas s’exécuter sur l’appareil.
Les notifications sont la partie que la plupart des projets ratent. L’envoi est déclenché par des webhooks de base de données vers des edge functions : le message part parce qu’une ligne a changé, pas parce qu’un écran était ouvert. La minuterie de repos programme en plus une notification du système d’exploitation en renfort, pour que l’alarme sonne même avec le téléphone verrouillé et les minuteries JavaScript suspendues.
La facturation passe par Stripe sur le web et RevenueCat dans les applications, avec un seul état d’abonnement partagé entre les trois plateformes.
La localisation comme architecture
Six langues, ce n’est pas un fichier de traduction ajouté à la fin. Les noms d’exercices, les types d’appareils de cardio, les valeurs énumérées, les réponses de l’IA et les fiches des boutiques s’adaptent à chaque langue. Bien faire cela tôt coûte beaucoup moins cher que de le refaire ensuite, et c’est ce qui permet d’entrer dans un nouveau marché sans ouvrir un projet d’ingénierie.
Où en est le projet
En production dans les deux boutiques et maintenu — versions, cycles de révision des boutiques, migrations de schéma, correctifs. Publier la première version, c’est la partie courte du travail.
Vous voulez quelque chose du genre?
Dites-moi ce que le logiciel doit faire, et ce qui arrive aujourd’hui quand il ne le fait pas.