kameleoon_client_flutter 3.4.0
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 #
- Upgraded Flutter SDK to use
iOS SDK 4.13.2
/Android SDK 4.12.0
- Added support for new conditions:
- Exclusive Campaign
- Experiment
- Personalization
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
andmetadata
to thetrackConversion
method. - Added new optional parameter
metadata
to theConversion
data constructor. - Added support for Contextual Bandit evaluations. Calling
getRemoteVisitorData
with thecbs=true
flag is required for this feature to function correctly. - Added new configuration parameter
networkDomain
toKameleoonClientConfig
. 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 toRemoteVisitorDataFilter
. This parameter determines whether to use thevisitorCode
from 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
isFeatureActive
method now includes an optionaltrack
parameter, which controls whether the assigned variation is tracked (default:true
). - Enhanced logging:
- Introduced log levels:
none
error
warning
info
debug
- 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
flush
withinstant
parameter. If the parameter's value istrue
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 isfalse
. - Added new configuration parameter
trackingIntervalMilliseconds
toKameleoonClientConfig
, which is used to set interval for tracking requests. Default value is1000
milliseconds. - Added the
getVisitorCode
method, which returns the unique visitor code used withinKameleoonClient
.
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, aKameleoonClient
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
toKameleoonClientConfig
. - Renamed enum values of
Devices
class:Devices.PHONE
renamed toDevices.phone
Devices.TABLET
renamed toDevices.tablet
Devices.DESKTOP
renamed toDevices.desktop
- Renamed enum values of
Browsers
class:Browsers.CHROME
renamed toBrowsers.chrome
Browsers.INTERNET_EXPLORER
renamed toBrowsers.internetExplorer
Browsers.FIREFOX
renamed toBrowsers.firefox
Browsers.SAFARI
renamed toBrowsers.safari
Browsers.OPERA
renamed toBrowsers.opera
Browsers.OTHER
renamed toBrowsers.other
CustomData
now accepts a list of strings, instead of a single string, for enhanced flexibility and usability.
- Renamed
- Methods:
- Removed
obtainFeatureVariable
. - Removed
retrieveDataFromRemoteSource
. - Removed
getVisitorCode
. - Renamed
getFeatureAllVariables
togetFeatureVariationVariables
. - Renamed
getActiveFeatureListForVisitorCode
togetActiveFeatures
. - Renamed
updateConfigurationHandler
toonUpdateConfiguration
. - Changed
revenue
argument to optional in thetrackConversion
method. Also, the type ofrevenue
was changed tofloat
. - For the
runWhenReady
method, thereadyCallback
andfailCallback
combined into the singleFunction(bool)
callback. - For the
onUpdateConfiguration
method, theFunction
callback changed toFunction(int)
where parameter represents the value of Unix time (number of seconds that have elapsed since January 1, 1970) when configuration was updated
- Removed
- Exceptions:
- Removed
CredentialsNotFound
(theclientId
andclientSecret
credentials are now optional). - Renamed
VisitorCodeNotValid
toVisitorCodeInvalid
. - Renamed
VariationNotFound
toFeatureVariationNotFound
. - Renamed
VariableNotFound
toFeatureVariableNotFound
.
- Removed
- Added new exception [
SiteCodeIsEmpty
] for the methodKameleoonClientFactory.create
that indicates the providedsiteCode
is empty. - Added new exception
FeatureEnvironmentDisabled
indicating that the feature flag is disabled for certain environments. The following methods can throw the new exception:
- Classes:
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 acceptsvisitorCode
as a parameter to use for all SDK methods. If you omit thevisitorCode
, the SDK generates a new visitor code value that it uses until you overwrite it. To overwrite avisitorCode
, provide it as a parameter explicitly to the method. The method throwsVisitorCodeInvalid
if the providedvisitorCode
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 is10_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) isInteger.MAX_VALUE
.isUniqueIdentifier
that provides additional capabilities with cross-device experimentation for theKameleoonClientConfig
.
- Changed the
key
parameter in thegetRemoteData
method from required to optional. If you don't provide akey
parameter, the SDK uses thevisitorCode
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 deprecatedgetActiveFeatureListForVisitorCode
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
parametersclientId
andclientSecret
and the external configuration file parameters,client_id
andclient_secret
from required to optional. This means you can now successfully initialize a configuration without providing credentials. Previously, you would receive acredentialsNotFound
exception. - Added new conditions for targeting:
- Visitor Code
- SDK Language
- Device
- Conversion
Page Title & Page Url
[Available only for web]Browser
[Available only for web]
- 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 #
- Upgraded Flutter SDK library to use
iOS SDK 3.0.3
2.0.0 - 2023-06-06 #
The Flutter 2.0.0 release contains the following changes:
- Upgraded Flutter SDK library to use
iOS SDK 3.0.2
/Android SDK 3.1.0
/JS/TS SDK 1.4.4
- To enhance security, we have made it mandatory to include the
client_id
andclient_secret
fields in the Kameleoon configuration file. Please make sure you have set these fields as soon as possible. Alternatively, you can set these fields using the internalKameleoonConfiguration
instance. This change helps ensure that only authorized parties have access to Kameleoon and its associated resources. - Real-time updates:
- Added the ability to update your campaigns and feature flag configurations instantaneously with the Real-Time Streaming Architecture. For details see the:
Documentation
andProduct Updates
. - Added a new method
updateConfigurationHandler
to handle events when configuration has updated data in real time.
- Added the ability to update your campaigns and feature flag configurations instantaneously with the Real-Time Streaming Architecture. For details see the:
- Added new methods for working with feature flags:
- Added new methods for working with data configuration:
- Renamed the following methods:
obtainFeatureVariable
is nowgetFeatureVariable
activateFeature
is nowisFeatureActive
obtainVisitorCode
is nowgetVisitorCode
retrieveDataFromRemoteSource
is nowgetRemoteData
obtainVariationAssociatedData
is nowgetVariationAssociatedData
- Added support for Experiment & Exclusive Campaign conditions. Related to
triggerExperiment
andisFeatureActive
. - Added new exceptions:
CredentialsNotFound
. Related toKameleoonClientFactory.create
.
- Renamed exceptions:
NotActivated
is nowNotAllocated
. Related totriggerExperiment
.ExperimentConfigurationNotFound
is nowExperimentNotFound
. Related totriggerExperiment
.FeatureConfigurationNotFound
is nowFeatureNotFound
. Related toisFeatureActive
.
- Changes in
KameleoonData
:CustomData
accepts a list of values (previously, it accepted only one value)- Added support for the
is among the values
operator for CustomData - Added KameleoonData
Device
class. Possible values are: PHONE, TABLET, DESKTOP. - Removed the KameleoonData
Interest
class.
Unsupported versions: #
1.0.3 - 2022-05-31 #
- Added method for retrieving data from remote source:
retrieveDataFromRemoteSource
- Added support of multi-environment for feature flags, Related to
activateFeature
,obtainFeatureVariable
- Updated Flutter SDK library to iOS 2.0.15 / Android 2.0.13 / JS 1.0.7
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