Skip to content
BRX Digital
Back to portfolio
In-house product2025

CalorieAI — Mobile AI nutrition

Photo-based calorie tracking: Claude Vision analyses the meal, the app tracks macros, the user subscribes. Clean MVVM architecture, swappable payment and vision services.

Le contexte

Le marché du tracking nutritionnel est saturé. MyFitnessPal et ses concurrents ont tous le même problème : la friction de saisie. Pour qu'un utilisateur tienne plus de 3 jours, il faut une UX qui rend l'acte de logger un repas trivial.

Le problème

  • Friction de saisie — chercher dans une base, choisir une portion, valider. Trop long.
  • Précision variable — les bases nutritionnelles publiques sont souvent fausses ou incomplètes.
  • Onboarding flou — la plupart des apps tombent direct dans l'usage sans qualifier l'utilisateur (objectifs, contraintes, préférences).
  • Monétisation — RevenueCat, paywall, A/B testing : il faut tout instrumenter dès le départ.

La solution

Analyse par photo via Claude Vision

L'utilisateur ouvre l'app, prend une photo de son repas, Claude Vision API renvoie en quelques secondes : calories totales, breakdown protéines/glucides/lipides, suggestions de portions. Pas de saisie, pas de recherche, pas de validation laborieuse.

Onboarding 16 écrans

Un funnel construit comme un produit : 16 écrans qui qualifient le profil (âge, taille, poids, objectif), les préférences (régime, allergies), le niveau d'activité, et qui présentent le paywall au bon moment — pas trop tôt, pas trop tard.

Architecture Clean MVVM

Couches strictement séparées : domaine / data / présentation. Les services externes (paiement, vision, analytics) sont derrière des interfaces (IPaywallService, IVisionService, IAnalyticsService). On change le provider sans toucher au reste.

Monétisation RevenueCat

Abonnement mensuel ($2.99) ou annuel ($29.99). Webhooks RevenueCat → Supabase pour synchroniser le statut d'abonnement et débloquer les features.

A/B testing et remote config

Tous les paramètres clés (textes paywall, ordre des écrans onboarding, défauts) pilotés à distance. Permet d'optimiser la conversion sans publier une nouvelle version.

L'architecture

  • Front — Expo 54, React Native 0.81, TypeScript strict. Navigation React Navigation v7.
  • État — Zustand pour le local (settings, profil), React Query pour le distant (meals, abonnement).
  • Auth + DB — Supabase (Auth + PostgreSQL).
  • IA — Claude Vision API via SDK Anthropic. Mock mode en dev.
  • Paiement — RevenueCat SDK + webhooks vers Supabase.
  • Design tokens — centralisés, aucun style hardcodé, prêt pour un thème sombre/clair.

Différenciateurs

  • Vision IA, pas modèle embarqué — pas de modèle 200 Mo dans l'app, latence réseau acceptable (~2-4 s), qualité Claude.
  • Architecture conçue pour tester — payment et vision pluggables = tests mock simples, A/B mock vs prod.
  • Onboarding conçu comme un produit — pas une suite d'écrans bricolés, un vrai funnel de conversion.

La suite

Intégration Apple Health (en cours). Amélioration de l'analyse multi-plats. Mode hors-ligne pour les analyses basiques. Optimisations conversion sur le paywall via A/B testing remote.

Next project

DeviFlow — Construction-procurement platform

A project, an idea, a product to launch?

Let's talk. Reply within 48 h.