Aller au contenu principal

Vue d'ensemble de l'architecture du SDK

L'Azeoo SDK utilise un point d'entrée unique et un cycle de vie en deux étapes : initialize (avec clé API et options), puis connect (avec ID utilisateur et token). Les apps natives et Flutter communiquent avec le cœur Dart via les API générées par Pigeon ; vous n'avez pas à gérer directement les method channels ou la configuration du moteur.

Flux haut niveau

Cycle de vie en deux étapes

  1. Initialize — Appelez le SDK avec votre clé API et une configuration optionnelle (locale, thème, zone de sécurité, deep links, analytics, offline). Aucun utilisateur n'est encore attaché.
  2. Connect — Appelez connect(userId, token) pour attacher un utilisateur. Ensuite, vous pouvez utiliser les modules nutrition et training ainsi que les API utilisateur/thème/navigation.

Tant que vous n'appelez pas connect, les modules UI et les API dépendantes de l'utilisateur ne sont pas disponibles.

Surface publique (ce que vous utilisez)

  • AzeooSDK (ou équivalent plateforme) — Le point d'entrée unique. Vous appelez init/initialize une fois, puis connect lorsque l'utilisateur est connu.
  • UserAzeooSDK.user (ou sdk.user) pour le profil et les opérations utilisateur.
  • ThemeAzeooSDK.theme pour le mode et les couleurs du thème.
  • NavigationAzeooSDK.navigation pour la navigation programmatique et les deep links.
  • ModulesAzeooSDK.modules.nutrition et AzeooSDK.modules.training (sur Flutter : AzeooSDK.nutrition et AzeooSDK.training) pour embarquer des vues et ouvrir des écrans (ex. showDiary, showPlans, getFragment, getViewController).

En interne, le côté Dart utilise AzeooClient, AzeooUI et AzeooUser ; ils ne font pas partie de la séquence d'init publique que vous implémentez.

Structure des modules

Module Nutrition

  • Embedding : Obtenir une vue/fragment/controller (ex. modules.nutrition.getFragment(), getViewController(), ou Flutter AzeooSDKContent).
  • Navigation : showDiary, showPlans, showPlan, showRecipes, showScanner, showSearch, showCart, showAddSelection, etc.
  • Données : getDiary, searchFoods, getPlansData, getShoppingList et API associées lorsqu'elles sont exposées.

Module Training

  • Embedding : Même principe que nutrition (getFragment, getView, getViewController).
  • Navigation : showWorkouts, showPlans, showExercises, showProgress, showSchedule, etc.
  • Données : getWorkouts, getExercises, getPlansData, getProgress et API associées lorsqu'elles sont exposées.

Couche de services (interne)

Le cœur Dart utilise l'injection de dépendances, le routage et des services pour l'analytics, le stockage, l'auth, le thème, la localisation, les deep links et les permissions. Ils supportent les API publiques ci-dessus ; vous configurez le comportement via les options passées à initialize et connect.

Étapes suivantes