Kotlin Multiplatform Experiments installation

  1. Install the dependency

    Required

    Add the PostHog KMP SDK to your shared module's commonMain source set:

    shared/build.gradle.kts
    kotlin {
    sourceSets {
    commonMain.dependencies {
    implementation("com.posthog:posthog-kmp:0.+")
    }
    }
    }

    0.+ resolves to the latest 0.x release. The SDK is a pre-release, so the API can change between minor versions – pin an exact version from Maven Central if you would rather upgrade deliberately. Kotlin/Wasm support requires 0.2.0 or higher.

  2. Configure PostHog

    Required

    Call PostHog.setup() once, early in your app's lifecycle. The config is shared across every target – only the PostHogContext differs per platform.

    Android needs the Application instance, so set PostHog up from your Application class – not from an Activity, whose onCreate re-runs on every recreation (for example, on rotation):

    MyApplication.kt
    import android.app.Application
    import com.posthog.kmp.PostHog
    import com.posthog.kmp.PostHogConfig
    import com.posthog.kmp.PostHogContext
    class MyApplication : Application() {
    override fun onCreate() {
    super.onCreate()
    PostHog.setup(
    config = PostHogConfig(
    apiKey = "<ph_project_token>",
    host = "https://us.i.posthog.com",
    ),
    context = PostHogContext(this),
    )
    }
    }

    Register the class in your AndroidManifest.xml:

    android/src/main/AndroidManifest.xml
    <application android:name=".MyApplication" ...>
  3. Implement your experiment

    Required

    Experiments run on top of our feature flags. You can define which version of your code runs based on the return value of the feature flag:

    if (PostHog.getFeatureFlag("your-experiment-feature-flag") == "test") {
    // do something
    } else {
    // It's a good idea to let control variant always be the default behaviour,
    // so if something goes wrong with flag evaluation, you don't break your app.
    }
  4. Run your experiment

    Required

    Once you've implemented the feature flag in your code, you'll enable it for a target audience by creating a new experiment in the PostHog dashboard.

  5. Next steps

    Recommended

    Now that you're running experiments, continue with the resources below to learn what else Experiments enables within the PostHog platform.

    ResourceDescription
    Creating an experimentHow to create an experiment in PostHog
    Adding experiment codeHow to implement experiments for all platforms
    Statistical significanceUnderstanding when results are meaningful
    Experiment insightsHow to analyze your experiment data
    More tutorialsOther real-world examples and use cases

Still have questions?

Was this page useful?