Skip to content

Releases: Kameleoon-new/client-flutter

Flutter SDK 3.9.0

Choose a tag to compare

@Kameleoon-SDK Kameleoon-SDK released this 02 Sep 11:31

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.dataFileUpdate notifies when the SDK data file (configuration) is updated with polling or streaming modes.
    • EventType.httpRequest notifies 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 null to setEventHandler clears the handler for the selected event type.
  • The onUpdateConfiguration method has been deprecated in favor of [setEventHandler][setEventHandler] with the EventType.dataFileUpdate event type.

Bug fixes

  • Targeting conditions of unknown (unsupported) types are now evaluated to false instead of true, so visitors are no longer targeted by segments containing web-specific conditions the SDK does not support.

Flutter SDK 3.8.0

Choose a tag to compare

@Kameleoon-SDK Kameleoon-SDK released this 13 Jul 08:25

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 getDataFile method. It now returns a cached DataFile instance that is refreshed whenever the SDK configuration is updated.
  • Added a new dateModified property to the DataFile object returned by the getDataFile method.
  • The getFeatureList method has been deprecated in favor of getDataFile().
  • 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 activityTrackingIntervalMilliseconds parameter from 15 000 ms to 60 000 ms. This reduces the number of activity requests sent to the Data API and helps prevent 429 (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, getVariations and isFeatureActive. (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 INFO and DEBUG log messages that were removed from the standard JS SDK bundle in version 4.24.0, so all KameleoonLogger log 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 refreshIntervalMinutes interval 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

Choose a tag to compare

@Kameleoon Kameleoon released this 17 Feb 16:02

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 *1000 ms- (default) to 5000 ms, allowing a reduction in the number of tracking requests.
  • Introduced a new track parameter for addData. When set to false, 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 is true. This behavior is consistent with the track parameter used in evaluation methods such as getVariation.
  • Introduced the activityTrackingIntervalMilliseconds parameter, which defines the interval at which activity events are sent. This helps reduce network usage and battery consumption. The minimum and default value is 15 000 ms. Setting this value to 0 disables 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 isUniqueIdentifier parameter passed to KameleoonClientConfig was not applied when initializing KameleoonClient.

Flutter SDK 3.6.0

Choose a tag to compare

@Kameleoon Kameleoon released this 25 Dec 15:11

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

Choose a tag to compare

@Kameleoon Kameleoon released this 27 Nov 15:59

Bug fixes

  • Resolved an issue where the com.kameleoon.flutter platform 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

Choose a tag to compare

@Kameleoon Kameleoon released this 30 Oct 10:25

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 KameleoonClient now starts initializing immediately upon creation. Previously, initialization only began after calling the runWhenReady method.
      initializes only after runWhenReady method.
  • 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 defaultDataFile parameter. If no cached configuration is available, the SDK immediately uses the provided default. For version control, the SDK prioritizes the default configuration if its dateModified timestamp is more recent than the cached version.
  • Added the evaluateAudiences method. This method iterates over all Audiences Explorer segments, evaluates each one, and tracks the segments for which the visitor is targeted using the TARGETINGSEGMENT event.
  • Introduced the new getDataFile method. 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, use getVariations instead. getDataFile is 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*- to Variation, representing the name of the variation.
  • Added an overwrite flag to CustomData, used as the overwrite parameter during tracking.
  • CustomData can now be created using a name, in addition to the existing method of using an index.

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

Choose a tag to compare

@Kameleoon Kameleoon released this 02 Apr 10:41

Features

Flutter SDK 3.3.0

Choose a tag to compare

@Kameleoon Kameleoon released this 28 Mar 06:43

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 negative and metadata to the trackConversion method.
  • Added new optional parameter metadata to the Conversion data constructor.
  • Added support for Contextual Bandit evaluations. Calling getRemoteVisitorData with the cbs=true flag is required for this feature to function correctly.
  • Added new configuration parameter networkDomain to KameleoonClientConfig. 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

Choose a tag to compare

@Kameleoon Kameleoon released this 03 Feb 12:00

Bug fixes

  • Resolved an issue where the SDK could crash during prolonged application initialization on Android devices.

Flutter SDK 3.2.0

Choose a tag to compare

@Kameleoon Kameleoon released this 07 Jan 09:05

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 visitorCode parameter to RemoteVisitorDataFilter. This parameter determines whether to use the visitorCode from the most recent previous visit instead of the current visitorCode. When enabled, this feature allows visitor exposure to be based on the retrieved visitorCode, facilitating cross-device reconciliation. Default value of the parameter is true.
  • 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 isFeatureActive method now includes an optional track parameter, which controls whether the assigned variation is tracked (default: true).
  • Enhanced logging:
  • 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 flush with instant parameter. If the parameter's value is true the visitor's data is tracked instantly. Otherwise, the visitor's data will be tracked with the next tracking interval. Default value of the parameter is false.
  • Added new configuration parameter trackingIntervalMilliseconds to KameleoonClientConfig, which is used to set interval for tracking requests. Default value is 1000 milliseconds.
  • Added the getVisitorCode method, which returns the unique visitor code used within KameleoonClient.