optimizely_flutter_sdk
This repository houses the Flutter SDK for use with Optimizely Feature Experimentation, Optimizely Full Stack (legacy), and Optimizely Rollouts.
3.6.0
15K downloads/mo
#2473 most downloaded on pub.dev
optimizely/optimizely-flutter-sdk
What this package is like to depend on
Last release 1 months ago
09 Jul 2026
Release timing varies
gaps range from 2 weeks to 7 months
Nearly every release is documented
notes for 14 of 14 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
20 releases · first in 2022
9 releases in the last 12 months
see the full history below
Release timeline
20 releases · Oct 2022 to Jul 2026Releases
latest 20-
3.6.009 Jul 2026Release notes
Open source →3.6.0
July 9, 2026
Dependency Updates
- Bumped iOS OptimizelySwiftSDK from 5.3.0 to 5.4.2 and Android android-sdk from 5.2.0 to 5.3.0 (#113)
The native SDK bump includes the following changes:
New Features
- Local Holdouts: Added support for Local Holdouts, enabling holdout experiments to be scoped to specific feature flags rather than applied globally. Local Holdouts let you measure the true incremental impact of individual features by holding out a subset of users from specific rollouts while still serving them other experiences. See Holdouts docs for more information.
Enhancements
- Block ODP identify event for single identifier
Bug Fixes
- Defer NWPathMonitor creation to avoid crash during multi-SDK startup
- Prevent EXC_BAD_ACCESS from premature URLSession deallocation
- Replace non-numeric holdout placeholder IDs in event-construction tests
- Normalize campaign_id, variation_id, and entity_id on decision events
- Use attribute id instead of key for CMAB prediction requests
Release notes
Open source →July 9th, 2026
Dependency Updates
- Bumped iOS OptimizelySwiftSDK from 5.3.0 to 5.4.2 and Android android-sdk from 5.2.0 to 5.3.0 (#113)
The native SDK bump includes the following changes:
New Features
- Local Holdouts: Added support for Local Holdouts, enabling holdout experiments to be scoped to specific feature flags rather than applied globally. Local Holdouts let you measure the true incremental impact of individual features by holding out a subset of users from specific rollouts while still serving them other experiences. See Holdouts docs for more information.
Enhancements
- Block ODP identify event for single identifier
Bug Fixes
- Defer NWPathMonitor creation to avoid crash during multi-SDK startup
- Prevent EXC_BAD_ACCESS from premature URLSession deallocation
- Replace non-numeric holdout placeholder IDs in event-construction tests
- Normalize campaign_id, variation_id, and entity_id on decision events
- Use attribute id instead of key for CMAB prediction requests
-
3.5.015 May 2026Release notes
Open source →3.5.0
May 13, 2026
New Features
Feature Rollout: Introduced Feature Rollout capabilities. Feature Rollouts represent a new experiment type merging Targeted Delivery simplicity with A/B test measurement capabilities.
See Feature Rollout docs for more information.Dependency Updates
-
Bumped iOS OptimizelySwiftSDK from 5.2.1 to 5.3.0
-
Bumped Android android-sdk from 5.1.1 to 5.2.0
-
Bump native SDKs for feature rollout support (#111)
Release notes
Open source →May 13, 2026
New Features
Feature Rollout: Introduced Feature Rollout capabilities. Feature Rollouts represent a new experiment type merging Targeted Delivery simplicity with A/B test measurement capabilities. See Feature Rollout docs for more information.
Dependency Updates
-
Bumped iOS OptimizelySwiftSDK from 5.2.1 to 5.3.0
-
Bumped Android android-sdk from 5.1.1 to 5.2.0
-
Bump native SDKs for feature rollout support (#111)
-
-
3.4.304 May 2026 -
3.4.225 Mar 2026Release notes
Open source →3.4.2
March 25th, 2026
Bug Fixes
- Ensure FlutterResult and invokeMethod are always called on main thread (#98)
Release notes
Open source →March 25, 2026
Bug Fixes
- Ensure FlutterResult and invokeMethod are always called on main thread (#98)
-
3.4.128 Jan 2026Release notes
Open source → -
3.4.007 Jan 2026Release notes
Open source →January 7th, 2026
New Features
- CMAB (Contextual Multi-Armed Bandit) Support (#94)
- Added
CmabConfigclass for CMAB initialization with configurable cache settings and custom prediction endpoints. - Added
decideAsync()methods toOptimizelyUserContextfor asynchronous CMAB decision-making. - New CMAB-specific decide options:
ignoreCmabCache,resetCmabCache,invalidateUserCmabCache
- Added
- Add Holdout support for feature experimentation.
- Add Multi-Region Support for Data Hosting.
Bug Fixes
- Nested Object Support in Event Metadata for Swift (#92)
- Enhanced event metadata handling to support complex nested objects in iOS/Swift.
Release notes
Open source →January 7th, 2026
New Features
- CMAB (Contextual Multi-Armed Bandit) Support (#94)
- Added
CmabConfigclass for CMAB initialization with configurable cache settings and custom prediction endpoints. - Added
decideAsync()methods toOptimizelyUserContextfor asynchronous CMAB decision-making. - New CMAB-specific decide options:
ignoreCmabCache,resetCmabCache,invalidateUserCmabCache
- Added
- Add Holdout support for feature experimentation.
- Add Multi-Region Support for Data Hosting.
Bug Fixes
- Nested Object Support in Event Metadata for Swift (#92)
- Enhanced event metadata handling to support complex nested objects in iOS/Swift.
- CMAB (Contextual Multi-Armed Bandit) Support (#94)
-
3.3.029 Oct 2025Release notes
Open source → -
3.2.024 Oct 2025 -
3.1.009 Oct 2025Release notes
Open source →October 9th, 2025
This minor release added the following support:
- Android 15 support (#84)
- Update AGP version to 8.7.0
- Update gradle version to 8.10.2
- Update kotlin version to 2.1.0
Release notes
Open source →October 9th, 2025
This minor release added the following support:
- Android 15 support (#84)
- Update AGP version to 8.7.0
- Update gradle version to 8.10.2
- Update kotlin version to 2.1.0
-
3.0.117 Jun 2025Release notes
Open source →Jun 4th, 2025
Functionality Enhancements
- Add experiment id and variation id added into decision notification payload (#80)
Release notes
Open source →Jun 4th, 2025
Functionality Enhancements
- Add experiment id and variation id added into decision notification payload (#80)
-
3.0.028 Nov 2024Release notes
Open source →November 28th, 2024
Breaking Changes
- VUID configuration is now independent of ODP (#78)
- When VUID is disabled:
vuidis not generated or saved.client-initializedevent will not auto fired on SDK init.vuidis not included in the odp events as a default attribute.createUserContext()will be rejected ifuserIdis not provided.
-
2.0.126 Jul 2024 -
2.0.029 Jan 2024Release notes
Open source →January 23, 2024
New Features
The 2.0.0 release introduces a new primary feature, Advanced Audience Targeting enabled through integration with Optimizely Data Platform (ODP) (#52, #57, #72).
You can use ODP, a high-performance Customer Data Platform (CDP), to easily create complex real-time segments (RTS) using first-party and 50+ third-party data sources out of the box. You can create custom schemas that support the user attributes important for your business, and stitch together user behavior done on different devices to better understand and target your customers for personalized user experiences. ODP can be used as a single source of truth for these segments in any Optimizely or 3rd party tool.
With ODP accounts integrated into Optimizely projects, you can build audiences using segments pre-defined in ODP. The SDK will fetch the segments for given users and make decisions using the segments. For access to ODP audience targeting in your Feature Experimentation account, please contact your Customer Success Manager.
This version includes the following changes:
-
New API added to
OptimizelyUserContext:-
fetchQualifiedSegments(): this API will retrieve user segments from the ODP server. The fetched segments will be used for audience evaluation. The fetched data will be stored in the local cache to avoid repeated network delays. -
When an
OptimizelyUserContextis created, the SDK will automatically send an identify request to the ODP server to facilitate observing user activities.
-
-
New APIs added to
OptimizelyFlutterSdk:-
sendOdpEvent(): customers can build/send arbitrary ODP events that will bind user identifiers and data to user profiles in ODP. -
createUserContext()with anonymous user IDs: user-contexts can be created without a userId. The SDK will create and use a persistentVUIDspecific to a device when userId is not provided.
-
For details, refer to our documentation pages:
Bug Fixes
- Crash fixed, fetchQualifiedSegments without options (#64).
- Fix proguard for logback and dart version (#68).
Functionality Enhancements
-
-
2.0.0-beta22 Sep 2023 pre-release -
1.0.109 May 2023Release notes
Open source →May 8, 2023
Official General Availability (GA) release
Bug Fixes
- Fix "no serializer found" error (#51).
-
1.0.1-beta13 Mar 2023 pre-releaseRelease notes
Open source →March 10, 2022
- We updated our README.md and other non-functional code to reflect that this SDK supports both Optimizely Feature Experimentation and Optimizely Full Stack. (#44).
-
1.0.0-beta03 Nov 2022 pre-releaseRelease notes
Open source →November 3, 2022
Beta release of the Optimizely X Full Stack Flutter SDK.
New Features
-
Following are the api's added in Flutter SDK:
- activate
- getVariation
- getForcedVariation
- setForcedVariation
- getOptimizelyConfig
- createUserContext
- close
-
Following are the notification listener's added in Flutter SDK:
- addActivateNotificationListener
- addDecisionNotificationListener
- addTrackNotificationListener
- addLogEventNotificationListener
- addConfigUpdateNotificationListener
- removeNotificationListener
- clearNotificationListeners
- clearAllNotificationListeners
-
Following are the api's added in UserContext:
- getUserId
- getAttributes
- setAttributes
- trackEvent
- decide
- decideForKeys
- decideAll
- setForcedDecision
- getForcedDecision
- removeForcedDecision
- removeAllForcedDecisions
-
-
0.1.2-beta28 Oct 2022 pre-releaseNothing published for this version
-
0.1.1-beta26 Oct 2022 pre-releaseNothing published for this version
-
0.1.0-beta06 Oct 2022 pre-releaseNothing published for this version