Repository navigation
Releases: Kameleoon-new/client-flutter
Releases · Kameleoon-new/client-flutter
Release list
Flutter SDK 3.9.0
Features
- Upgraded Flutter SDK to use
iOS SDK 4.28.0/Android SDK 4.27.0/JS/TS SDK 4.25.0 - Added support for SDK event handlers through the new [
setEventHandler][setEventHandler] method:EventType.dataFileUpdatenotifies when the SDK data file (configuration) is updated with polling or streaming modes.EventType.httpRequestnotifies when SDK HTTP requests complete successfully or fail. The handler is called once per each actual HTTP request attempt, including retries.- HTTP request events include the request type, HTTP status or failure details, and request duration.
- Passing
nulltosetEventHandlerclears the handler for the selected event type.
- The
onUpdateConfigurationmethod has been deprecated in favor of [setEventHandler][setEventHandler] with theEventType.dataFileUpdateevent type.
Bug fixes
- Targeting conditions of unknown (unsupported) types are now evaluated to
falseinstead oftrue, so visitors are no longer targeted by segments containing web-specific conditions the SDK does not support.
Flutter SDK 3.8.0
Features
- Upgraded Flutter SDK to use
iOS SDK 4.27.3/Android SDK 4.26.3/JS/TS SDK 4.24.5 - Improved the performance of the
getDataFilemethod. It now returns a cachedDataFileinstance that is refreshed whenever the SDK configuration is updated. - Added a new
dateModifiedproperty to theDataFileobject returned by thegetDataFilemethod. - The
getFeatureListmethod has been deprecated in favor ofgetDataFile(). - Added support for *during the current visit- and *during any of the last visits- settings across the following targeting conditions:
- Converted Goal
- Feature Flag
- Web Experiment
- Personalization
- Exclusive Campaign
- Increased the default and minimum values of the
activityTrackingIntervalMillisecondsparameter from15 000ms to60 000ms. This reduces the number of activity requests sent to the Data API and helps prevent429(Too Many Requests) responses. (Only iOS / Android) - Tracking requests are now paused while the application is in the background (iOS / Android) or while the visitor is not genuinely interacting with the page (Web). This reduces the number of requests sent to Kameleoon servers and prevents inflated visit counts. To continue sending data in these cases, explicitly call
flush(instant: true). - Added support for variation simulation when feature flags are **inactive (OFF state)*- in evaluation methods such as
getVariation,getVariationsandisFeatureActive. (Only Web) flush(instant: true)now awaits the completion of the tracking request. (Only Web)- The bundled JS SDK now uses the *full- build, which retains
INFOandDEBUGlog messages that were removed from the standard JS SDK bundle in version4.24.0, so allKameleoonLoggerlog levels keep working. (Only Web)
Bug fixes
- Fixed an issue where, in certain scenarios, the SDK data file (configuration) was not updated at the configured
refreshIntervalMinutesinterval in polling mode and was instead refreshed only after the application restarted. (Only iOS / Android) - Fixed an issue where the *Web Experiment- targeting condition could return incorrect non-targeted results. (Only Web)
Flutter SDK 3.7.0
Features
- Upgraded Flutter SDK to use
iOS SDK 4.25.0/Android SDK 4.24.0/JS/TS SDK 4.18.0 - Added support for version strings containing pre-release and build metadata, in accordance with Semantic Versioning. Pre-release and build metadata components are currently ignored, and the version is normalized to
major.minor.patch. Full support for Semantic Versioning, including pre-release, will be introduced in future releases. - Updated the allowed range for the
trackingIntervalMilliseconds. The new range is from *1000ms- (default) to5000ms, allowing a reduction in the number of tracking requests. - Introduced a new
trackparameter foraddData. When set tofalse, the data is stored locally and used only for targeting evaluation; it is not sent to the Data API, helping to prevent duplicate data from being recorded. The default value istrue. This behavior is consistent with thetrackparameter used in evaluation methods such asgetVariation. - Introduced the
activityTrackingIntervalMillisecondsparameter, which defines the interval at which activity events are sent. This helps reduce network usage and battery consumption. The minimum and default value is15 000ms. Setting this value to0disables periodic activity tracking; in this case, only a single activity event is sent at application startup. (Only iOS / Android)
Bug fixes
- Fixed an issue where the
isUniqueIdentifierparameter passed toKameleoonClientConfigwas not applied when initializingKameleoonClient.
Flutter SDK 3.6.0
Features
- Upgraded Flutter SDK to use
iOS SDK 4.22.2/Android SDK 4.21.1/JS/TS SDK 4.17.0 - Updated evaluation and tracking logic to comply with GDPR requirements when consent is not given:
- If behavior is partially blocked, the default variation will be returned.
- If behavior is completely blocked, an exception will be thrown.
Flutter SDK 3.5.1
Bug fixes
- Resolved an issue where the
com.kameleoon.flutterplatform channel sent messages from a non-platform thread when emitting SDK log events. All logging-related native-to-Flutter messages are now properly dispatched on the platform thread.
Flutter SDK 3.5.0
Features
- Upgraded Flutter SDK to use
iOS SDK 4.21.1/Android SDK 4.20.2/JS/TS SDK 4.9.0 -
- In the Web integration, the
KameleoonClientnow starts initializing immediately upon creation. Previously, initialization only began after calling therunWhenReadymethod.
initializes only afterrunWhenReadymethod.
- In the Web integration, the
- Added support for a New/*Returning- visitor breakdown filter in reports.
- Refactored targeting condition logic (remote data requests are now optional) for:
- Time elapsed since first/last visit
- New or returning visitors
- Total number of visits
- Number of visits today
- Added support for **304 (Not Modified)*- responses from the SDK config service to avoid redundant updates and reduce traffic when the configuration hasn't changed.
- Added support for using a Custom Data value for traffic bucketing instead of the default visitor code. Learn More.
- Introducing a fallback configuration mechanism via the
defaultDataFileparameter. If no cached configuration is available, the SDK immediately uses the provided default. For version control, the SDK prioritizes the default configuration if itsdateModifiedtimestamp is more recent than the cached version. - Added the
evaluateAudiencesmethod. This method iterates over all Audiences Explorer segments, evaluates each one, and tracks the segments for which the visitor is targeted using theTARGETINGSEGMENTevent. - Introduced the new
getDataFilemethod. This method returns the current SDK configuration (also known as the data file) used for evaluation and targeting. It is *not- intended for production use to fetch variations for every feature flag in the returned list, as it is not optimized for performance. For that purpose, usegetVariationsinstead.getDataFileis mainly useful for debugging or QA, for example to let internal users manually select a variant for a specific feature flag in production. - Added a new property **
name*- toVariation, representing the name of the variation. - Added an
overwriteflag toCustomData, used as theoverwriteparameter during tracking. CustomDatacan now be created using aname, in addition to the existing method of using anindex.
Bug fixes
- Changed the order in which *conversion- and *experiment- events are sent. This may lead to more accurate visit-level experiment reporting.
Flutter SDK 3.4.0
Features
- Upgraded Flutter SDK to use
iOS SDK 4.13.2/Android SDK 4.12.0 - Added support for new conditions:
- Exclusive Campaign
- Experiment
- Personalization
Flutter SDK 3.3.0
Features
- Upgraded Flutter SDK to use
iOS SDK 4.13.1/Android SDK 4.11.1/JS/TS SDK 4.9.0 - Added new optional parameters
negativeandmetadatato thetrackConversionmethod. - Added new optional parameter
metadatato theConversiondata constructor. - Added support for Contextual Bandit evaluations. Calling
getRemoteVisitorDatawith thecbs=trueflag is required for this feature to function correctly. - Added new configuration parameter
networkDomaintoKameleoonClientConfig. This parameter allows specifying a custom domain for all outgoing network requests. - Added SDK support for Mutually Exclusive Groups. When feature flags are grouped into a Mutually Exclusive Group, only one flag in the group will be evaluated at a time. All other flags in the group will automatically return their default variation.
- Added SDK support for holdout experiments. Visitors assigned to a holdout experiment are excluded from all other rollouts and experiments, and consistently receive the default variation. For visitors not in a holdout experiment, the standard evaluation process applies, allowing them to be evaluated for all feature flags as usual.
- Added the
setForcedVariation()method. This method allows explicitly setting a forced variation for a visitor, which will be applied during experiment evaluation. - Added support for *simulated- variations. The feature is available only on Web.
- Compression has been added to the Conversions list. This enhancement prevents unchecked growth and improves the speed of visitor synchronization with local storage. The feature is available only on iOS and Android.
Flutter SDK 3.2.1
Bug fixes
- Resolved an issue where the SDK could crash during prolonged application initialization on Android devices.
Flutter SDK 3.2.0
Features
- Upgraded Flutter SDK to use
iOS SDK 4.7.0/Android SDK 4.5.0/JS/TS SDK 4.2.3 - Introduced new evaluation methods for clarity and improved efficiency when working with the SDK:
- These methods replace the deprecated ones:
- Introduced a new
visitorCodeparameter toRemoteVisitorDataFilter. This parameter determines whether to use thevisitorCodefrom the most recent previous visit instead of the currentvisitorCode. When enabled, this feature allows visitor exposure to be based on the retrievedvisitorCode, facilitating cross-device reconciliation. Default value of the parameter istrue. - Mapping identifier is now persistent, enabling the assigned variation for a visitor to be retained when merging sessions between anonymous and registered users.
- A new version of the
isFeatureActivemethod now includes an optionaltrackparameter, which controls whether the assigned variation is tracked (default:true). - Enhanced logging:
- Introduced log levels:
noneerrorwarninginfodebug
- Added support for custom logger implementations.
- Introduced log levels:
- Enhanced tracking to consolidate multiple requests into a single one, combining visitor information and sending it once per interval.
- Added a new variation of the
flushwithinstantparameter. If the parameter's value istruethe visitor's data is tracked instantly. Otherwise, the visitor's data will be tracked with the next tracking interval. Default value of the parameter isfalse. - Added new configuration parameter
trackingIntervalMillisecondstoKameleoonClientConfig, which is used to set interval for tracking requests. Default value is1000milliseconds. - Added the
getVisitorCodemethod, which returns the unique visitor code used withinKameleoonClient.