Guide d’intégration iOS
Ce guide explique comment intégrer le SDK Azeoo dans votre application iOS en utilisant le flux public initialize → connectUser.
Vue d’ensemble
- Initialiser – Appelez
AzeooSDK.initialize(apiKey:config:theme:deepLinks:safeArea:...)(sans utilisateur). - Connecter – Appelez
sdk.connectUser(token:gender:height:weight:completion:)lorsque vous disposez d’un jeton utilisateur. - Utiliser les modules – Utilisez
sdk.modules.nutritionpour intégrer des vues ou ouvrir des écrans.
Intégration de base
Étape 1 : Initialiser le SDK
Dans votre AppDelegate (ou SceneDelegate) :
import AzeooSDK
let config = AzeooConfig(
locale: "en",
analyticsEnabled: true,
offlineEnabled: true
)
let theme = AzeooThemeConfig(
lightPrimaryColor: 0xFF5073F0,
darkPrimaryColor: 0xFF156204
)
let deepLinks = AzeooDeepLinkConfig(scheme: "https", host: "azeoo.com")
let safeArea = AzeooSafeAreaConfig(top: true, bottom: true, left: true, right: true)
AzeooSDK.initialize(
apiKey: "your-sdk-api-key",
config: config,
theme: theme,
deepLinks: deepLinks,
safeArea: safeArea
) { result in
if case .failure(let error) = result { print("Init failed: \(error)"); return }
// SDK initialized; call connectUser when user token is available
}
Étape 2 : Connecter un utilisateur
Lorsque l’utilisateur est connecté :
AzeooSDK.shared?.connectUser(
token: "user-token",
gender: "male",
height: AzeooHeight(178.0),
weight: AzeooWeight(75.0)
) { result in
switch result {
case .success(let profile): print("Connected: \(profile.name ?? "unknown")")
case .failure(let error): print("Connect failed: \(error)")
}
}
Étape 3 : Utiliser l’UI du SDK
Utilisez les méthodes des modules ou intégrez les views / view controllers fournis par le SDK (voir Composants UI) :
guard let sdk = AzeooSDK.shared else { return }
// Open screens
sdk.modules.nutrition.showDiary(date: nil)
// Or embed SDK UI
let nutritionVC = sdk.modules.nutrition.getViewController()
present(nutritionVC, animated: true)
Exemple complet
import UIKit
import AzeooSDK
class ViewController: UIViewController {
private var sdk: AzeooSDK?
override func viewDidLoad() {
super.viewDidLoad()
let config = AzeooConfig(locale: "en", analyticsEnabled: true, offlineEnabled: true)
AzeooSDK.initialize(apiKey: "your-sdk-api-key", config: config) { [weak self] result in
guard let self = self else { return }
switch result {
case .success(let sdk):
self.sdk = sdk
sdk.connectUser(
token: "user-token",
gender: "male",
height: AzeooHeight(178.0),
weight: AzeooWeight(75.0)
) { connectResult in
if case .failure(let error) = connectResult {
print("Connect failed: \(error)")
}
}
case .failure(let error):
print("Init failed: \(error)")
}
}
}
@IBAction func showNutrition(_ sender: UIButton) {
sdk?.modules.nutrition.showDiary(date: nil)
}
}
Gestion des erreurs
Traitez les erreurs d’initialisation et de connexion dans les handlers de complétion :
AzeooSDK.initialize(apiKey: apiKey, config: AzeooConfig()) { initResult in
switch initResult {
case .success(let sdk):
sdk.connectUser(
token: userToken,
gender: gender,
height: AzeooHeight(height),
weight: AzeooWeight(weight)
) { connectResult in
switch connectResult {
case .success: break
case .failure(let error): print("Connect failed: \(error)")
}
}
case .failure(let error):
print("Initialize failed: \(error)")
}
}