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.