Chapter 101 · Feature Flags Android
Subchapter 101.2
references/android.mdMarkdown4 KBView on GitHub
Required
Add the PostHog Android SDK to your build.gradle dependencies:
build.gradle
PostHog AI
dependencies {
implementation("com.posthog:posthog-android:3.+")
}2
Required
Initialize PostHog in your Application class:
SampleApp.kt
PostHog AI
class SampleApp : Application() {
companion object {
const val POSTHOG_PROJECT_TOKEN = "<ph_project_token>"
const val POSTHOG_HOST = "https://us.i.posthog.com"
}
override fun onCreate() {
super.onCreate()
// Create a PostHog Config with the given project token and host
val config = PostHogAndroidConfig(
apiKey = POSTHOG_PROJECT_TOKEN,
host = POSTHOG_HOST
)
// Setup PostHog with the given Context and Config
PostHogAndroid.setup(this, config)
}
}3
Recommended
Once installed, PostHog will automatically start capturing events. You can also manually send events to test your integration:
Kotlin
PostHog AI
import com.posthog.PostHog
PostHog.capture(
event = "button_clicked",
properties = mapOf(
"button_name" to "signup"
)
)4
Required
Check if a feature flag is enabled:
Kotlin
PostHog AI
val isMyFlagEnabled = PostHog.isFeatureEnabled("flag-key")
if (isMyFlagEnabled) {
// Do something differently for this user
// Optional: fetch the payload
val matchedFlagPayload = PostHog.getFeatureFlagPayload("flag-key")
}5
Optional
For multivariate flags, check which variant the user has been assigned:
Kotlin
PostHog AI
val enabledVariant = PostHog.getFeatureFlag("flag-key")
if (enabledVariant == "variant-key") { // replace 'variant-key' with the key of your variant
// Do something differently for this user
// Optional: fetch the payload
val matchedFlagPayload = PostHog.getFeatureFlagPayload("flag-key")
}6
Optional
Experiments run on top of our feature flags. Once you’ve implemented the flag in your code, you run an experiment by creating a new experiment in the PostHog dashboard.
7
Recommended
Now that you’re evaluating flags, continue with the resources below to learn what else Feature Flags enables within the PostHog platform.
| Resource | Description |
|---|---|
| Creating a feature flag (opens in a new tab) | How to create a feature flag in PostHog |
| Adding feature flag code (opens in a new tab) | How to check flags in your code for all platforms |
| Framework-specific guides (opens in a new tab) | Setup guides for React Native, Next.js, Flutter, and other frameworks |
| How to do a phased rollout (opens in a new tab) | Gradually roll out features to minimize risk |
| More tutorials (opens in a new tab) | Other real-world examples and use cases |
Ask a question
HelpfulCould be better