Aller au contenu principal

Intégration Flutter

Le SDK Azeoo utilise un flux initializeconnect. Après connect, vous pouvez ouvrir des écrans de nutrition via AzeooSDKModules, ou intégrer l’UI complète via AzeooSDKContent.

Intégration de base

Étape 1 : Initialiser le SDK

import 'package:flutter/widgets.dart';
import 'package:azeoo_sdk/azeoo_sdk.dart';

void main() async {
WidgetsFlutterBinding.ensureInitialized();

await AzeooSDK.initialize(
'your-sdk-api-key',
options: AzeooSDKInitOptions(
locale: 'en',
analyticsEnabled: true,
offlineSupport: true,
),
);
runApp(MyApp());
}

Étape 2 : Connecter un utilisateur

Après l’authentification de l’utilisateur dans votre application (par ex. l’écran de connexion/authentification), appelez :

await AzeooSDK.connect(
token: userToken,
gender: userGender,
height: Height(userHeightCm), // defaults to centimeters
weight: Weight(userWeightKg), // defaults to kilograms
);

Un peu de contexte sur les unités (Height / Weight)

  • Imports conseillés : import 'package:azeoo_sdk/sdk/azeoo_sdk.dart'; pour Height, Weight, HeightUnit, WeightUnit.
  • Height(value, unit) encapsule une valeur numérique + une unité (HeightUnit).
  • Weight(value, unit) encapsule une valeur numérique + une unité (WeightUnit).
  • Par défaut :
    • Height(...) utilise HeightUnit.centimeters
    • Weight(...) utilise WeightUnit.kilograms

Exemple avec unités explicites :

await AzeooSDK.connect(
token: userToken,
gender: userGender,
height: Height(5.9, HeightUnit.feetInches),
weight: Weight(180, WeightUnit.pounds),
);

Étape 3 : Utiliser les fonctionnalités du SDK

// Option A — Embed full SDK content
AzeooSDKContent(bottomSafeArea: true);

// Note: call `connect` before using `AzeooSDKContent` because it relies on services initialized during `connect`.

// Option B — Open module screens
AzeooSDKModules.nutrition.showMainScreen(bottomSafeArea: true);
AzeooSDKModules.nutrition.showBarcodeScanner();

Exemple complet

import 'package:flutter/material.dart';
import 'package:azeoo_sdk/azeoo_sdk.dart';

void main() async {
WidgetsFlutterBinding.ensureInitialized();
await AzeooSDK.initialize(
'your-sdk-api-key',
options: AzeooSDKInitOptions(
locale: 'en',
analyticsEnabled: true,
offlineSupport: true,
),
);
runApp(MyApp());
}

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomeScreen(),
);
}
}

class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Azeoo SDK Demo')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () =>
AzeooSDKModules.nutrition.showMainScreen(
bottomSafeArea: true,
),
child: Text('Show Nutrition'),
),
ElevatedButton(
onPressed: () => Navigator.push(
context,
MaterialPageRoute(
builder: (_) => Scaffold(
body: AzeooSDKContent(),
),
),
),
child: Text('Show SDK Content'),
),
],
),
),
);
}
}

Pensez à appeler AzeooSDK.connect(...) après la connexion de l’utilisateur.

Prochaines étapes