⚙️ 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.core.AzeooSDK
import com.azeoo.sdk.core.AzeooConfig
AzeooSDK.initialize(
context = applicationContext,
apiKey = "your-api-key",
config = AzeooConfig(
locale = "en",
analyticsEnabled = true,
offlineEnabled = true,
connectionTimeoutSeconds = 30L,
),
theme = themeConfig, // optional
deepLinks = deepLinkConfig, // optional
safeArea = safeAreaConfig, // optional
connector = connectorConfig, // optional — see Connectors
) { 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,
logLevel: .warning
)
AzeooSDK.initialize(
apiKey: "your-api-key",
config: config,
theme: themeConfig,
deepLinks: deepLinkConfig,
safeArea: safeAreaConfig,
connector: connectorConfig // optional
) { 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.
Internal Azeoo apps only
If your SDK API key is configured for internal native apps on the Azeoo server, you may pass your existing client auth token as token instead of a minted User JWT — see Authentication. Most integrators use the standard JWT flow.
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