Skip to main content

App Startup Initializers#

The UI Components library relies on Jetpack App Startup Initializers to initialize certain components. These run automatically when you include the UI Components library and start your application.

In some cases, you might wish to prevent the automatic initialization, for example, to decrease your app's initial startup time. You can do this by following the Manually initialize components guide from the Android Developers documentation.

caution

Removing the automatic initializers and not running the initializers manually will result in crashes when using the UI Components.

Specifically, you'll have to do the following:

  1. Disable the auto-initialization of our components, by adding the following to your Manifest:

    <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge">
    <meta-data
    android:name="com.getstream.sdk.chat.startup.ThreeTenInitializer"
    tools:node="remove"
    />
    <meta-data
    android:name="io.getstream.chat.android.ui.common.ChatUIInitializer"
    tools:node="remove"
    />
    </provider>
  2. Initialize them manually, before any of the Stream UI Components are used in your application.

    AppInitializer.getInstance(appContext).run {
    initializeComponent(ThreeTenInitializer::class.java)
    initializeComponent(ChatUIInitializer::class.java)
    }
    note

    You need to have a dependency on the App Startup library to access AppInitializer.

Did you find this page helpful?