Skip to main content

iOS API Reference

API reference for the Azeoo SDK on iOS. The current flow is AzeooSDK.initialize(...) then sdk.connectUser(token:gender:height:weight:completion:); see iOS Quick Start and SDK API.

AzeooSDK

Single entry point. AzeooSDK.initialize(apiKey, config?, theme?, deepLinks?, safeArea?, completion) initializes the SDK and returns the instance via completion. Then call sdk.connectUser(token:gender:height:weight:completion:) to attach a user. Access user, theme, navigation, and modules after connectUser.

AzeooClient (legacy reference)

  • apiKey: String - The API key used for initialization
  • subscriptions: [String] - List of active subscriptions
  • isAuthenticated: Bool - Authentication status

Methods

func validateApiKey(completion: @escaping (Result<Bool, Error>) -> Void)

Validates the API key with the server.

AzeooUser (profile via sdk.user)

User profile operations. Access it from sdk.user after AzeooSDK.connectUser.

Read profile / identity

func getProfile(completion: @escaping (Result<AzeooUserProfile?, Error>) -> Void)
func getId(completion: @escaping (Result<String?, Error>) -> Void)
func getName(completion: @escaping (Result<String?, Error>) -> Void)
func getEmail(completion: @escaping (Result<String?, Error>) -> Void)
func getGender(completion: @escaping (Result<String?, Error>) -> Void)
func getBirthDateTimestamp(completion: @escaping (Result<Int64?, Error>) -> Void)
func getHeight(completion: @escaping (Result<Double?, Error>) -> Void)
func getWeight(completion: @escaping (Result<Double?, Error>) -> Void)

Update profile

func updateProfile(data: [String: Any], completion: @escaping (Result<AzeooUserProfile, Error>) -> Void)
func refreshProfile(completion: @escaping (Result<AzeooUserProfile, Error>) -> Void)

Upload image

func uploadImage(imageData: Data, completion: @escaping (Result<String, Error>) -> Void)

AzeooModules (public) / AzeooUI (legacy)

Navigation and UI module (nutrition). Access via sdk.modules.

Initialization (legacy)

static func initialize(
client: AzeooClient,
config: Config,
completion: @escaping (Result<Void, Error>) -> Void
)

Instance Access (legacy)

static var instance: AzeooUI? { get }

Nutrition Module (sdk.modules.nutrition)

func getViewController(bottomSafeArea: Bool = true) -> UIViewController
func getView(bottomSafeArea: Bool = true) -> some View
func display(bottomSafeArea: Bool = true, completion: @escaping (Result<Void, Error>) -> Void = { _ in })

Navigation (all accept a completion callback):

func showDiary(date: Int64? = nil, completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showPlans(completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showPlan(planId: String, completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showRecipes(completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showRecipe(recipeId: Int64, recipeName: String? = nil, completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showScanner(completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showMobileScanner(completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showSearch(completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showCart(completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showAddSelection(completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showAddFood(completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showAddMeal(completion: @escaping (Result<Void, Error>) -> Void = { _ in })
func showHome(completion: @escaping (Result<Void, Error>) -> Void = { _ in })

Theme Management

Use sdk.theme after initialization (and connectUser if you rely on user-specific theming):

// Theme mode
func setLightMode(completion: @escaping (Result<Void, Error>) -> Void)
func setDarkMode(completion: @escaping (Result<Void, Error>) -> Void)
func setSystemMode(completion: @escaping (Result<Void, Error>) -> Void)
func toggleMode(completion: @escaping (Result<Void, Error>) -> Void)

// Colors
func setPrimaryColor(_ color: Int64, completion: @escaping (Result<Void, Error>) -> Void)
func setSecondaryColor(_ color: Int64, completion: @escaping (Result<Void, Error>) -> Void)
func setTheme(_ theme: AzeooThemeConfig, completion: @escaping (Result<Void, Error>) -> Void)

Reset

sdk.disconnect { result in
// result: .success(()) or .failure(Error)
}
sdk.dispose()

Configuration (native)

AzeooSDK.initialize(
apiKey: String,
config: AzeooConfig? = nil,
theme: AzeooThemeConfig? = nil,
deepLinks: AzeooDeepLinkConfig? = nil,
safeArea: AzeooSafeAreaConfig? = nil,
completion: @escaping (Result<AzeooSDK, Error>) -> Void
)

Error Handling

In iOS, native calls (including AzeooSDK.initialize, connectUser, and module display/navigation methods) return errors via the completion Result:

completion(.failure(error))

Next Steps