Skill 77 · Instrument Feature Flags
Subchapter 77.10
references/flutter.mdMarkdown6 KBView on GitHub
AI agents: this is one page from PostHog’s docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt (opens in a new tab)
1
Required
Add the PostHog Flutter SDK to your pubspec.yaml:
pubspec.yaml
posthog_flutter: ^5.24.02
Required
Add these values to your AndroidManifest.xml:
android/app/src/main/AndroidManifest.xml
<application>
<activity>
[...]
</activity>
<meta-data android:name="com.posthog.posthog.PROJECT_TOKEN" 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
Update the minimum Android SDK version to 21 in android/app/build.gradle:
android/app/build.gradle
defaultConfig {
minSdkVersion 23
// rest of your config
}Add these values to your Info.plist:
ios/Runner/Info.plist
<dict>
[...]
<key>com.posthog.posthog.PROJECT_TOKEN</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
platform :ios, '13.0'
# rest of your configAdd these values in index.html:
web/index.html
<!DOCTYPE html>
<html>
<head>
...
<script>
!function
3
Recommended
Once installed, PostHog will automatically start capturing events. You can also manually send events to test your integration:
Dart
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
final isMyFlagEnabled = await Posthog().isFeatureEnabled('flag-key');
if (isMyFlagEnabled) {
// Do something differently for this user
// Optional: fetch the payload
final matchedFlagPayload = (await
5
Optional
For multivariate flags, check which variant the user has been assigned:
Dart
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
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 |
Ask PostHog AI
HelpfulCould be better
| 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 |