launchdarkly_flutter_client_sdk
Official Flutter client-side SDK for LaunchDarkly. Get started using LaunchDarkly today!
4.20.2
102K downloads/mo
#1122 most downloaded on pub.dev
launchdarkly/flutter-client-sdk
What this package is like to depend on
Last release 1 months ago
23 Jul 2026
Release timing varies
gaps range from 9 days to 4 months
Nearly every release is documented
notes for 46 of 47 stable releases
2 versions withdrawn
withdrawn after publishing
6 years old
53 releases · first in 2020
14 releases in the last 12 months
see the full history below
Release timeline
53 releases · Oct 2020 to Jul 2026Releases
latest 53-
4.20.223 Jul 2026Release notes
Open source →Release notes
Open source → -
4.20.113 Jul 2026Release notes
Open source →Release notes
Open source → -
4.20.029 Jun 2026Release notes
Open source →4.20.0 (2026-06-29)
Features
- Add experimental support for data-saving mode (FDv2). (#314) (c2f9216)
- Update launchdarkly_common_client to version 1.14.0 (#320) (2144c78)
The Flutter SDK now supports the FDv2 data system in Early Access. Opt in by providing a
DataSystemConfigwhen you build yourLDConfig:final config = LDConfig( '<your-mobile-key>', AutoEnvAttributes.enabled, // Providing a data system configuration (even an empty one) opts the // SDK into the FDv2 data acquisition protocol. dataSystem: const DataSystemConfig(), );
Applications that do not provide a
dataSystemcontinue to use the existing (FDv1) data sources, so default behavior is unchanged.By default the SDK streams in the foreground (with polling fallback) and switches to a reduced-rate background mode when the app is backgrounded, following the application lifecycle and network availability automatically. You can turn that automatic switching off through
ApplicationEvents.Control the connection mode at runtime with
setConnectionMode, which takes aConnectionModeId(streaming,polling,background, oroffline). Setting a mode is a sticky override that suppresses automatic switching; pass no argument to clear it and resume automatic resolution:// Force a specific mode (sticky; suppresses automatic switching). client.setConnectionMode(ConnectionModeId.polling); // Clear the override and resume automatic mode resolution. client.setConnectionMode();
To start in a specific mode, set
DataSystemConfig.initialConnectionMode— equivalent to callingsetConnectionModewith that mode immediately after the client is created:final config = LDConfig( '<your-mobile-key>', AutoEnvAttributes.enabled, dataSystem: const DataSystemConfig( initialConnectionMode: ConnectionModeId.polling, ), );
This feature is not stable, and not subject to any backwards compatibility guarantees or semantic versioning. It is in early access. If you want access to this feature, please join the EAP. See https://launchdarkly.com/docs/sdk/features/data-saving-mode.
This PR was generated with Release Please. See documentation.
Release notes
Open source →Features
- Add experimental support for data-saving mode (FDv2). (#314) (c2f9216)
- Update launchdarkly_common_client to version 1.14.0 (#320) (2144c78)
- Add Early Access support for the FDv2 data system (data saving mode).
The Flutter SDK now supports the FDv2 data system in Early Access. Opt in by providing a
DataSystemConfigwhen you build yourLDConfig:final config = LDConfig( '<your-mobile-key>', AutoEnvAttributes.enabled, // Providing a data system configuration (even an empty one) opts the // SDK into the FDv2 data acquisition protocol. dataSystem: const DataSystemConfig(), );Applications that do not provide a
dataSystemcontinue to use the existing (FDv1) data sources, so default behavior is unchanged.By default the SDK streams in the foreground (with polling fallback) and switches to a reduced-rate background mode when the app is backgrounded, following the application lifecycle and network availability automatically. You can turn that automatic switching off through
ApplicationEvents.Control the connection mode at runtime with
setConnectionMode, which takes aConnectionModeId(streaming,polling,background, oroffline). Setting a mode is a sticky override that suppresses automatic switching; pass no argument to clear it and resume automatic resolution:// Force a specific mode (sticky; suppresses automatic switching). client.setConnectionMode(ConnectionModeId.polling); // Clear the override and resume automatic mode resolution. client.setConnectionMode();To start in a specific mode, set
DataSystemConfig.initialConnectionMode— equivalent to callingsetConnectionModewith that mode immediately after the client is created:final config = LDConfig( '<your-mobile-key>', AutoEnvAttributes.enabled, dataSystem: const DataSystemConfig( initialConnectionMode: ConnectionModeId.polling, ), );This feature is not stable, and not subject to any backwards compatibility guarantees or semantic versioning. It is in early access. If you want access to this feature, please join the EAP. See https://launchdarkly.com/docs/sdk/features/data-saving-mode.
-
4.19.010 Jun 2026Release notes
Open source →Release notes
Open source → -
4.18.109 Jun 2026Release notes
Open source →Release notes
Open source → -
4.18.009 Jun 2026 -
4.17.004 Jun 2026Release notes
Open source → -
4.17.0-beta.129 May 2026 pre-releaseNothing published for this version
-
4.16.023 Apr 2026Release notes
Open source → -
4.15.011 Feb 2026 -
4.14.005 Nov 2025 -
4.13.026 Sep 2025Release notes
Open source → -
4.12.015 Sep 2025Release notes
Open source →Features
- Add experimental plugin support. (#225) (5bd9ce7)
- Add hook support and experimental plugin support. (#228) (b698905)
- Add support for hooks. (#220) (6e7a26d)
- Update version constraints for device_info_plus to allow using 12.x. (9b5f530)
- Update version constraints for package_info_plus to allow using 9.x. (9b5f530)
Bug Fixes
-
4.11.203 Sep 2025Release notes
Open source → -
4.11.112 May 2025 -
4.11.021 Apr 2025 -
4.10.018 Apr 2025 -
4.9.013 Dec 2024 -
4.8.031 Oct 2024Release notes
Open source → -
4.7.109 Oct 2024 -
4.7.001 Aug 2024 -
4.6.003 May 2024 -
4.5.023 Apr 2024 -
4.4.028 Mar 2024 -
4.3.018 Mar 2024Release notes
Open source → -
4.2.008 Mar 2024 -
4.1.015 Feb 2024Release notes
Open source →Features
- web based applications will now flush events before closing to ensure events are sent (#129) (c1e2828)
Bug Fixes
-
4.0.331 Jan 2024Release notes
Open source → -
4.0.231 Jan 2024 -
4.0.131 Jan 2024 -
4.0.031 Jan 2024Release notes
Open source →This version of the SDK has been re-written in dart and now supports Android, iOS, Windows, macOS, Linux, and Web.
The previous versions were wrappers which utilized our native Android and iOS SDKs.
A migration guide will be available in our docs.
Features
- Add example project. (#93) (588ae01)
- Implement support for REPORT for streaming. (#96) (1de6079)
- Use version 1.0.1 of common client. (#115) (cd85c65)
Bug Fixes
-
4.0.0-alpha.124 Jan 2024 pre-release -
4.0.0-alpha.022 Jan 2024 pre-releaseRelease notes
Open source →Initial 4.0.0 alpha release. 4.0.0 is a re-write of the SDK using Dart instead of native plugins.
-
3.1.009 Apr 2024Nothing published for this version
-
3.1.0-rc108 Apr 2024 pre-releaseNothing published for this version
-
3.0.121 Sep 2023Release notes
Open source →Fixed:
- Fixed a rare bug in key generation in some contexts generated by the Auto Environment Attributes feature.
-
3.0.025 Aug 2023Release notes
Open source →3.0.0 (2026-06-25)
⚠ BREAKING CHANGES
- report every SSE error response with status, headers, and recoverability (#311)
Features
This PR was generated with Release Please. See documentation.
Release notes
Open source →Added:
- Added Automatic Mobile Environment Attributes functionality which makes it simpler to target your mobile customers based on application name or version, or on device characteristics including manufacturer, model, operating system, locale, and so on. To learn more, read Automatic environment attributes.
Removed:
- Removed LDUser and related functionality. Use LDContext instead. To learn more, read https://docs.launchdarkly.com/home/contexts.
-
2.1.017 Aug 2023Release notes
Open source →Changed:
- Deprecated LDUser and related functionality. Use LDContext instead. To learn more, read about contexts.
-
2.0.309 Aug 2023 -
2.0.216 Jun 2023 -
2.0.107 Jun 2023Release notes
Open source →Fixed:
- Flag listeners are now called correctly after identify results in flag value changes.
-
2.0.026 Apr 2023Release notes
Open source →The latest version of this SDK supports LaunchDarkly's new custom contexts feature. Contexts are an evolution of a previously-existing concept, "users." Contexts let you create targeting rules for feature flags based on a variety of different information, including attributes pertaining to users, organizations, devices, and more. You can even combine contexts to create "multi-contexts."
For detailed information about this version, please refer to the list below. For information on how to upgrade from the previous version, please read the migration guide.
Added:
- The type
LDContextand associated builders which define the new context model. - For SDK methods that took an
LDUserparameter, there is now an overload (ex:startWithContext) that takes anLDContext. The SDK still supportsLDUserfor now, butLDContextis the preferred model andLDUsermay be removed in a future version.
Changed:
- The
secondaryattribute which existed inLDUseris no longer a supported feature. If you set an attribute with that name inLDContext, it will simply be a custom attribute like any other. - Analytics event data now uses a new JSON schema due to differences between the context model and the old user model.
- The SDK no longer adds
deviceandosvalues to the user attributes. Applications that wish to use device/OS information in feature flag rules must explicitly add such information. maxCachedUsersis nowmaxCachedContextsLDConfig.privateAttributeNamesis nowprivateAttributes
Removed:
- Removed the
secondarymeta-attribute inLDUserandLDUser.Builder. - The
aliasmethod no longer exists because alias events are not needed in the new context model. - The
inlineUsersInEventsoption no longer exists because it is not relevant in the new context model.
- The type
-
1.3.004 Apr 2023Release notes
Open source →Added:
LDConfigBuilder.applicationInfo()and.applicationVersion(), for configuration of application metadata that may be used in LaunchDarkly analytics or other product features. This does not affect feature flag evaluations.
-
1.2.007 Nov 2022Release notes
Open source →Changed:
- Updated Android SDK version.
- Updated Kotlin plugin version to allow working with new default versions in android studio.
- Raised minimum iOS version to 11, and updated to build with XCode 13.
-
1.1.415 Aug 2022Release notes
Open source →Changed:
- Update to use android-client-sdk 3.1.6. This release contains fixes related to android ANRs.
-
1.1.326 Jul 2022Release notes
Open source →Fixed:
- When using the flutter SDK on iOS the
deviceandoscustom attributes would not be populated in the user object. These will now be populated correctly.
- When using the flutter SDK on iOS the
-
1.1.223 Jun 2022Release notes
Open source →Changed:
- Update the example project to a new version of flutter embedding and removed usage of deprecated flutter components.
- Update to use ios-client-sdk V6.
- Updated to work with kotlin 1.7.0.
- String variation return types were optional when they did not need to be. They are now not optional. This could produce warnings where string variations were used previously. Those null checks can now be removed.
Fixed:
identifycalls were blocking and could trigger ANRs. They maintain the same interface, and can be awaited, but now they no longer block the calling thread.
-
1.1.123 Jun 2022 withdrawnNothing published for this version
-
1.1.023 Jun 2022 withdrawnNothing published for this version
-
1.0.029 Oct 2021Release notes
Open source →First supported release of LaunchDarkly's Flutter SDK. This release contains no SDK code changes from the prior beta release.
Added:
- Support for LaunchDarkly's internal release tool.
-
0.3.015 Oct 2021Release notes
Open source →This is a breaking beta release. The changelog may not detail all changes between beta releases. The SDK is considered to be an unsupported beta until release 1.0.0.
Added
LDClient.startFuturewhich can be used to get aFuturethat completes when the SDK has received the most recent flag values for the configured user after starting.LDClient.isInitializedwhich can be used to determine whether the SDK has has received the most recent flag values after starting.- Added the ability to configure the limit to the number of users to cache the flag values for on device. This limit can be configured with
LDConfigBuilder.maxCachedUsers.
Changed
LDConfigBuildersetters have had thesetprefix removed, e.g.LDConfigBuilder.setOfflinehas becomeLDConfigBuilder.offline.LDClient.isOnlinehas been replaced withLDClient.isOfflinefor consistency with other LaunchDarkly SDKs.
-
0.2.024 Sep 2021Release notes
Open source →This is a breaking beta release. The changelog may not detail all changes between beta releases. The SDK is considered to be an unsupported beta until release 1.0.0.
Added
- Added the
aliasmethod toLDClient. This can be used to associate two user objects for analytics purposes with an alias event. - Added the
autoAliasingOptOutconfiguration option. This can be used to control the new automatic aliasing behavior of theidentifymethod; by settingautoAliasingOptOuttotrue.identifywill not automatically generate alias events. - The SDK now supports the ability to control the proportion of traffic allocation to an experiment. This works in conjunction with a new platform feature now available to early access customers.
Changed
- The SDK implementation is now null-safe.
- The minimum Flutter version has been raised to 2.0.0.
- The minimum Dart version has been raised to 2.12.0.
- The minimum supported Android API version has changed from 16 to 21.
- The underlying SDK on Android has been updated to 3.1.1 from 2.13.0. See the Android SDK changelog for details on improvements.
- The underlying SDK on iOS has been updated from 5.2.0 to 5.4.3. See the iOS SDK changelog for details on improvements.
- The
identifymethod will now automatically generate an alias event when switching from an anonymous to a known user. This event associates the two users for analytics purposes as they most likely represent a single person.
- Added the
-
0.1.029 Oct 2020Release notes
Open source →This is the first public release of the LaunchDarkly Flutter client-side SDK. The SDK is considered to be an unsupported beta until release 1.0.0.
Added
- Support for configuring and initializing a SDK instance.
- Flag evaluation with and without details.
- Retrieving all flag values for the current user.
- Switching users with
identify. - Flag change listeners and flags received listeners.