⚙️ SDK Initialization
All platforms use the same lifecycle:
initialize— API key + optional config. No user.connect— User JWT + gender + height + weight. See Authentication.
Full checklist
Platform API names
| Platform | Initialize | Connect |
|---|---|---|
| Flutter | AzeooSDK.initialize | AzeooSDK.connect |
| Android | AzeooSDK.initialize | AzeooSDK.shared.connectUser |
| iOS | AzeooSDK.initialize | sdk.connectUser |
| React Native | AzeooSDK.initialize | connect on SDK wrapper |
Step 1: Initialize
Flutter
import 'package:azeoo_sdk/azeoo_sdk.dart';
await AzeooSDK.initialize(
'your-api-key',
options: AzeooSDKInitOptions(
locale: 'en',
analyticsEnabled: true,
offlineSupport: true,
theme: themeConfig, // optional
deepLinks: deepLinkConfig, // optional
safeArea: SafeAreaConfig.all(),
connector: connectorConfig, // optional — see Connectors
),
);
Android
import com.azeoo.sdk.AzeooSDK
import com.azeoo.sdk.AzeooConfig
AzeooSDK.initialize(
context = applicationContext,
apiKey = "your-api-key",
config = AzeooConfig(
locale = "en",
analyticsEnabled = true,
offlineEnabled = true,
connectionTimeoutSeconds = 30L,
persistSession = true,
),
theme = themeConfig, // optional
deepLinks = deepLinkConfig, // optional
safeArea = safeAreaConfig, // optional
) { error ->
if (error != null) { /* handle */ return@initialize }
// Ready for connect — use AzeooSDK.shared
}
iOS
import AzeooSDK
let config = AzeooConfig(
locale: "en",
analyticsEnabled: true,
offlineEnabled: true,
connectionTimeoutSeconds: 30,
persistSession: true
)
AzeooSDK.initialize(
apiKey: "your-api-key",
config: config,
theme: themeConfig,
deepLinks: deepLinkConfig,
safeArea: safeAreaConfig
) { result in
switch result {
case .success:
let sdk = AzeooSDK.shared
// Ready for connectUser
case .failure(let error):
break
}
}
React Native
import { AzeooSDK } from 'react-native-azeoo-lib';
await AzeooSDK.initialize('your-api-key', {
locale: 'en',
analyticsEnabled: true,
offlineEnabled: true,
// theme, deepLinks, safeArea optional
});
Step 2: Connect user
You need a User JWT from your backend and the user's profile fields. See Creating the User JWT for the payload spec, signing instructions, and backend code examples.
Flutter
await AzeooSDK.connect(
token: userJwt,
gender: 'male', // or your app's gender value
height: Height.scalar(180, HeightUnit.centimeters),
weight: Weight.scalar(75, WeightUnit.kilograms),
);
// userId available: AzeooSDK.userId
Android
AzeooSDK.shared.connectUser(
token = userJwt,
gender = user.gender,
height = user.height, // AzeooHeight
weight = user.weight, // AzeooWeight
) { profile, error ->
if (error != null) return@connectUser
val userId = profile?.id
}
iOS
AzeooSDK.shared.connectUser(
token: userJwt,
gender: user.gender,
height: user.height,
weight: user.weight
) { result in
// profile contains user id
}
React Native
await AzeooSDK.connect(userJwt, gender, heightValue, weightValue);
// See platform doc for measurement shape
See Measurements for height/weight units.
Disconnect
Clears the user session. SDK stays initialized.
| Platform | API |
|---|---|
| Flutter | await AzeooSDK.disconnect() |
| Android | AzeooSDK.shared.disconnect { } |
| iOS | AzeooSDK.shared.disconnect { } |
| React Native | await AzeooSDK.disconnect() |
Next steps
- Authentication
- Configuration (per platform)
- Platform Quick start