Chapter 159 · Omnibus Instrument Feature Flags
Subchapter 159.7
references/flutter.mdMarkdown6 KBView on GitHub
Required
Add the PostHog Flutter SDK to your pubspec.yaml:
pubspec.yaml
PostHog AI
posthog_flutter: ^5.0.02
Required
Add these values to your AndroidManifest.xml:
android/app/src/main/AndroidManifest.xml
PostHog AI
<application>
<activity>
[...]
</activity>
<meta-data android:name="com.posthog.posthog.API_KEY" android:value="<ph_project_token>" />
<meta-data android:name="com.posthog.posthog.POSTHOG_HOST" android:value="https://us.i.posthog.com" />
<meta-data android:name="com.posthog.posthog.TRACK_APPLICATION_LIFECYCLE_EVENTS" android:value="true" />
<meta-data android:name="com.posthog.posthog.DEBUG" android:value="true" />
</application>Update the minimum Android SDK version to 21 in android/app/build.gradle:
android/app/build.gradle
PostHog AI
defaultConfig {
minSdkVersion 21
// rest of your config
}Add these values to your Info.plist:
ios/Runner/Info.plist
PostHog AI
<dict>
[...]
<key>com.posthog.posthog.API_KEY</key>
<string><ph_project_token></string>
<key>com.posthog.posthog.POSTHOG_HOST</key>
<string>https://us.i.posthog.com</string>
<key>com.posthog.posthog.CAPTURE_APPLICATION_LIFECYCLE_EVENTS</key>
<true
Update the minimum platform version to iOS 13.0 in your Podfile:
Podfile
PostHog AI
platform :ios, '13.0'
# rest of your configAdd these values in index.html:
web/index.html
PostHog AI
<!DOCTYPE html>
<html>
<head>
...
<script>
!function(t,e
3
Recommended
Once installed, PostHog will automatically start capturing events. You can also manually send events to test your integration:
Dart
PostHog AI
import 'package:posthog_flutter/posthog_flutter.dart';
await Posthog().capture(
eventName: 'button_clicked',
properties: {
'button_name': 'signup'
}
);4
Required
Check if a feature flag is enabled:
Dart
PostHog AI
final isMyFlagEnabled = await Posthog().isFeatureEnabled('flag-key');
if (isMyFlagEnabled) {
// Do something differently for this user
// Optional: fetch the payload
final matchedFlagPayload = await Posthog().getFeatureFlagPayload('flag-key');
}5
Optional
For multivariate flags, check which variant the user has been assigned:
Dart
PostHog AI
final enabledVariant = await 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
final matchedFlagPayload = await 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