kameleoon_client_flutter 3.4.0 copy "kameleoon_client_flutter: ^3.4.0" to clipboard
kameleoon_client_flutter: ^3.4.0 copied to clipboard

Our SDK gives you the possibility of running experiments and activating feature flags on all platforms targeted by the Flutter application framework.

Changelog #

All notable changes to this project will be documented in this file.

3.4.0 #

Features #

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 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.

Bug fixes #

  • Resolved an issue where CustomData values were not applied correctly for targeting.

3.2.1 #

Bug fixes #

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

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 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.

3.1.1 #

Bug fixes #

  • Addressed an issue preventing the SDK from compiling when building the project with JDK 17.

3.1.0 #

Features #

  • The minimum supported Android version for the SDK has been designated as API level 21. This implies that the SDK is compatible with devices running Android 5.0 (Lollipop) and above. By setting the minimum supported version to API level 21, the SDK ensures compatibility with a wide range of Android devices, allowing developers to target a significant portion of the Android user base.

3.0.0 #

Breaking changes #

  • Removed the visitorCode parameter from all methods that accepted it. You must now specify the visitor code during initialization. As a result, a KameleoonClient instance only works for a single visitor:
  • Removed all deprecated methods and exceptions related to experiments:
    • triggerExperiment
    • getVariationAssociatedData (obtainVariationAssociatedData)
    • getExperimentList (obtainExperimentList)
    • getExperimentListForVisitor (obtainExperimentListForVisitor)
    • ExperimentConfigurationNotFound
    • NotTargeted
    • NotAllocated
    • SiteCodeDisabled
  • Changed the following classes, methods, fields and exceptions:
    • Classes:
      • Renamed KameleoonConfiguraton to KameleoonClientConfig.
      • Renamed enum values of Devices class:
        • Devices.PHONE renamed to Devices.phone
        • Devices.TABLET renamed to Devices.tablet
        • Devices.DESKTOP renamed to Devices.desktop
      • Renamed enum values of Browsers class:
        • Browsers.CHROME renamed to Browsers.chrome
        • Browsers.INTERNET_EXPLORER renamed to Browsers.internetExplorer
        • Browsers.FIREFOX renamed to Browsers.firefox
        • Browsers.SAFARI renamed to Browsers.safari
        • Browsers.OPERA renamed to Browsers.opera
        • Browsers.OTHER renamed to Browsers.other
      • CustomData now accepts a list of strings, instead of a single string, for enhanced flexibility and usability.
    • Methods:
      • Removed obtainFeatureVariable.
      • Removed retrieveDataFromRemoteSource.
      • Removed getVisitorCode.
      • Renamed getFeatureAllVariables to getFeatureVariationVariables.
      • Renamed getActiveFeatureListForVisitorCode to getActiveFeatures.
      • Renamed updateConfigurationHandler to onUpdateConfiguration.
      • Changed revenue argument to optional in the trackConversion method. Also, the type of revenue was changed to float.
      • For the runWhenReady method, the readyCallback and failCallback combined into the single Function(bool) callback.
      • For the onUpdateConfiguration method, the Function callback changed to Function(int) where parameter represents the value of Unix time (number of seconds that have elapsed since January 1, 1970) when configuration was updated
    • Exceptions:
      • Removed CredentialsNotFound (the clientId and clientSecret credentials are now optional).
      • Renamed VisitorCodeNotValid to VisitorCodeInvalid.
      • Renamed VariationNotFound to FeatureVariationNotFound.
      • Renamed VariableNotFound to FeatureVariableNotFound.
    • Added new exception [SiteCodeIsEmpty] for the method KameleoonClientFactory.create that indicates the provided siteCode is empty.
    • Added new exception FeatureEnvironmentDisabled indicating that the feature flag is disabled for certain environments. The following methods can throw the new exception:

Features #

  • Upgraded Flutter SDK library to use iOS SDK 4.4.2 / Android SDK 4.2.1 / JS/TS SDK 3.4.2
  • Added the setLegalConsent method to determine the types data that Kameleoon includes in tracking requests. This helps you adhere to legal and regulatory requirements while responsibly managing visitor data. You can find more information in the Consent management policy.
  • KameleoonClientFactory.create method accepts visitorCode as a parameter to use for all SDK methods. If you omit the visitorCode, the SDK generates a new visitor code value that it uses until you overwrite it. To overwrite a visitorCode, provide it as a parameter explicitly to the method. The method throws VisitorCodeInvalid if the provided visitorCode is invalid (empty or longer than 255 characters).
  • Added new configuration fields to KameleoonClientConfig and external configuration file:
    • defaultTimeoutMilliseconds which specifies the time interval, in milliseconds, that it takes for network requests from the SDK to time out. If not provided, the default value is 10_000 ms.
    • dataExpirationIntervalMinutes specifies the time (in minutes) that the SDK retains the visitor's data on the device. By default, the TTL (time to live) is Integer.MAX_VALUE.
    • isUniqueIdentifier that provides additional capabilities with cross-device experimentation for the KameleoonClientConfig.
  • Changed the key parameter in the getRemoteData method from required to optional. If you don't provide a key parameter, the SDK uses the visitorCode specified during initialization.
  • Added new targeting conditions (some conditions require you to pre-load data with getRemoteVisitorData)
    • Operating System
    • IP Geolocation
    • Kameleoon Segment
    • Target Feature Flag
    • Time since First Visit
    • Time since Last Visit
    • Number of Visits Today
    • Total Number of Visits
    • New or Returning Visitor
    • Likelihood to convert
  • Added new Kameleoon Data type:
  • Added the getActiveFeatures method, which retrieves information about the active feature flags that are available for a specific visitor code. This method replaces the deprecated getActiveFeatureListForVisitorCode method.
  • Added methods for obtaining remote visitor data:
    • getVisitorWarehouseAudience method to retrieve all data associated with a visitor's warehouse audiences and adds it to the visitor.
    • getRemoteVisitorData fetches the remote visitor's data (with an optional capability to add the data for the visitor).

Bug Fixes #

  • Stability and performance improvements.

2.0.2 #

Features #

  • Changed the KameleoonClientConfig parameters clientId and clientSecret and the external configuration file parameters, client_id and client_secret from required to optional. This means you can now successfully initialize a configuration without providing credentials. Previously, you would receive a credentialsNotFound exception.
  • Added new conditions for targeting:
  • Upgraded Flutter SDK library to use iOS SDK 3.0.6 / Android SDK 3.2.1 / JS/TS SDK 1.7.2

2.0.1 #

2.0.0 - 2023-06-06 #

The Flutter 2.0.0 release contains the following changes:

Unsupported versions: #

1.0.3 - 2022-05-31 #

1.0.2 - 2021-11-03 #

  • Added scheduling feature
  • Refactoring structure of library
  • Updated Flutter SDK library to iOS 2.0.12 / Android 2.0.10 / JS 1.0.5

1.0.1 #

  • Add Web platform
  • Update Flutter SDK library to iOS 2.0.11 / Android 2.0.9

1.0.0 #

  • Release

0.0.3 #

  • Implement null-safety

0.0.2 #

  • Implement iOS bridge

0.0.1 #

  • Implement Android bridge
0
likes
130
points
1.44k
downloads

Publisher

unverified uploader

Weekly Downloads

Our SDK gives you the possibility of running experiments and activating feature flags on all platforms targeted by the Flutter application framework.

Homepage

Documentation

API reference

License

LGPL-3.0 (license)

Dependencies

flutter, flutter_web_plugins, js

More

Packages that depend on kameleoon_client_flutter