Aller au contenu principal

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

  1. Initialiser – Appelez AzeooSDK.initialize(apiKey:config:theme:deepLinks:safeArea:...) (sans utilisateur).
  2. Connecter – Appelez sdk.connectUser(token:gender:height:weight:completion:) lorsque vous disposez d’un jeton utilisateur.
  3. Utiliser les modules – Utilisez sdk.modules.nutrition pour 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)")
}
}

Prochaines étapes