🖥️ Navigation, modules, thème (iOS)
Après connect, l'instance AzeooSDK connectée expose :
sdk.navigate(to:)+ opérations retour — navigation typéesdk.setModuleContainer(_:)+sdk.tabHost(for:)— coordination UI native adaptativesdk.modules.nutrition/sdk.modules.training— intégrationsdk.theme— contrôle du thème à l'exécution
Navigation typée
sdk.navigate(to: .nutrition(.plan(id: "abc-123")))
sdk.navigate(to: .training(.workouts))
sdk.back()
sdk.backToRoot()
sdk.canGoBack { result in /* Bool */ }
sdk.getCurrentRoute { result in /* String? */ }
Catalogue complet : Catalogue des destinations (nutrition + entraînement).
Coordinateurs de modules (setModuleContainer)
Installez une fois au démarrage pour que la navigation inter-modules bascule votre UI native :
sdk.setModuleContainer(AzeooUITabBarCoordinator(self, mapping: [
.nutrition: 1, .training: 2,
]))
Coordinateurs intégrés :
AzeooUITabBarCoordinator— pourUITabBarControllerAzeooUINavigationCoordinator— pour push/popUINavigationControllerAzeooSwiftUITabCoordinator<Tag>— pourTabViewSwiftUI avec unBinding
Conteneurs personnalisés (barre latérale / page view / tiroir) : implémentez AzeooModuleContainer directement — une seule méthode.
Hôtes d'onglets (sdk.tabHost(for:))
Retourne un UIViewController léger hébergeant la surface Flutter partagée pour un module — conçu pour UITabBarController.viewControllers :
let nutritionTab = sdk.tabHost(for: .nutrition)
let trainingTab = sdk.tabHost(for: .training)
Voir Hébergement multi-onglets pour le schéma complet.
Intégration (plein écran)
Pour une intégration plein écran ponctuelle :
// UIKit
sdk.modules.nutrition.display(in: hostVC, bottomSafeArea: true) { _ in }
// SwiftUI
sdk.modules.nutrition.getView(bottomSafeArea: true)
Thème (sdk.theme)
setMode, setLightMode, setDarkMode, setSystemMode, toggleMode, setPrimaryColor, setSecondaryColor, setLightColors, setDarkColors, setTheme, resetToDefault, getCurrentTheme.