Skip to main content
Version: Next

SDK Initialization and Configuration

SDK initialization is recommended to be performed once at application startup (e.g., in AppDelegate class).

Initialization involves no long operations, network requests, etc. (i.e., it does not affect application startup time).

Delayed or repeated initialization is possible (e.g., if application has test/prod server switching). An example of such switching is implemented in our demo application, where initialization occurs on the main screen in MainViewController class, with re-initialization when switching servers.

note

When integrating, it's important to consider SDK lifecycle:

  1. SDK Initialization
  2. User Setup
  3. Chat Opening

Basic Steps

For initialization and server connection, minimal SDK configuration is required:

Configure server connection (connection data is provided during integration and can be clarified with our support):

let chatTransportConfig = ChatTransportConfig(rest: "restURL",
webSocket: "webSocketURL",
dataStore: "dataStoreURL")

or simplified constructor for cloud clients:

let chatTransportConfig = ChatTransportConfig(cloudHost: "cloudUrl")

Then create SDK settings model with specified connection settings:

let chatConfig = ChatConfig(transportConfig: chatTransportConfig)

After that, initialize SDK instance with this settings model:

let chatCenterSdk = ChatCenterUISDK(providerUid: "providerUid",
chatConfig: chatConfig,
loggerConfig: ChatLoggerConfig(logLevel: .all))

This instance must be saved for subsequent access for the time needed for chat operation (usually matches application lifetime). For convenient access, you can use a singleton or your DI manager.