Skip to content

Commit 97d0e42

Browse files
Merge pull request #181 from splitio/FME-12349-fallback-treatments_baseline
[FME-12349] Add fallback treatments support
2 parents 3795dfc + 98fc519 commit 97d0e42

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+658
-96
lines changed

splitio/CHANGELOG.md

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
1+
# 1.2.1 (Jan 28, 2026)
2+
* Bug fix: corrected asset path for loading the Browser SDK.
3+
4+
# 1.2.1-rc.1 (Jan 28, 2026)
5+
6+
# 1.2.0 (Jan 28, 2026)
7+
* Added new configuration for Fallback Treatments, which allows setting a treatment value and optional config to be returned in place of "control", either globally or by flag. Read more in our docs.
8+
* Updated Android SDK to `5.4.2`, iOS SDK to `3.6.0`, and Browser SDK to `1.6.1`
9+
10+
# 1.2.0-rc.1 (Jan 28, 2026)
11+
112
# 1.1.0 (Jan 16, 2026)
2-
- Added Web support via the `splitio_web` package, the Web implementation of `splitio` based on the Split Browser SDK `1.6.0`.
13+
* Added Web support via the `splitio_web` package, the Web implementation of `splitio` based on the Split Browser SDK `1.6.0`.
314

415
# 1.1.0-rc.1 (Jan 15, 2026)
516

617
# 1.0.0 (Aug 14, 2025)
7-
- Updated Android SDK to `5.3.1` & iOS SDK to `3.3.2`
8-
- Added support for rule-based segments. These segments determine membership at runtime by evaluating their configured rules against the user attributes provided to the SDK.
9-
- Added support for feature flag prerequisites. This allows customers to define dependency conditions between flags, which are evaluated before any allowlists or targeting rules.
10-
- Added two new configuration options to control the behavior of the persisted rollout plan cache. Use `rolloutCacheConfiguration` in the config.
11-
- Added a new optional argument to the client `getTreatment` methods to allow passing additional evaluation options, such as a map of properties to append to the generated impressions sent to Split backend. Read more in our docs.
12-
- Added support for the new impressions tracking toggle available on feature flags, both respecting the setting and including the new field being returned on SplitView type objects. Read more in our docs.
18+
* Updated Android SDK to `5.3.1` & iOS SDK to `3.3.2`
19+
* Added support for rule-based segments. These segments determine membership at runtime by evaluating their configured rules against the user attributes provided to the SDK.
20+
* Added support for feature flag prerequisites. This allows customers to define dependency conditions between flags, which are evaluated before any allowlists or targeting rules.
21+
* Added two new configuration options to control the behavior of the persisted rollout plan cache. Use `rolloutCacheConfiguration` in the config.
22+
* Added a new optional argument to the client `getTreatment` methods to allow passing additional evaluation options, such as a map of properties to append to the generated impressions sent to Split backend. Read more in our docs.
23+
* Added support for the new impressions tracking toggle available on feature flags, both respecting the setting and including the new field being returned on SplitView type objects. Read more in our docs.
1324

1425
# 1.0.0-rc.1 (Aug 14, 2025)
1526

splitio/analysis_options.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@ include: package:flutter_lints/flutter.yaml
22

33
# Additional information about this file can be found at
44
# https://dart.dev/guides/language/analysis-options
5+
6+
linter:
7+
rules:
8+
- public_member_api_docs

splitio/example/ios/Podfile.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
PODS:
22
- Flutter (1.0.0)
3-
- Split (3.3.2)
4-
- splitio_ios (0.8.0):
3+
- Split (3.6.0)
4+
- splitio_ios (0.9.0):
55
- Flutter
6-
- Split (~> 3.3.2)
6+
- Split (~> 3.6.0)
77

88
DEPENDENCIES:
99
- Flutter (from `Flutter`)
@@ -20,9 +20,9 @@ EXTERNAL SOURCES:
2020
:path: ".symlinks/plugins/splitio_ios/ios"
2121

2222
SPEC CHECKSUMS:
23-
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
24-
Split: 0d4962a6c15180e1857c1a3753e1ae9c91a6150b
25-
splitio_ios: 438ad21d0dfe467670f8b9508773b77b16a71d6b
23+
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
24+
Split: 1e2176aacd6421029bea41413401389d86e3d50a
25+
splitio_ios: ad4f484a6c478bf7285e417ea8252371f66b54ff
2626

2727
PODFILE CHECKSUM: 4e8f8b2be68aeea4c0d5beb6ff1e79fface1d048
2828

splitio/example/lib/main.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// ignore_for_file: avoid_print
2+
13
import 'package:flutter/material.dart';
24
import 'package:splitio/splitio.dart';
35

splitio/example/pubspec.lock

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -171,39 +171,39 @@ packages:
171171
path: ".."
172172
relative: true
173173
source: path
174-
version: "1.1.0"
174+
version: "1.2.1"
175175
splitio_android:
176176
dependency: transitive
177177
description:
178178
name: splitio_android
179-
sha256: "344bf82de6694cffb8dd80a96ee734e31bb838d2b4693fb046e0fc98e31512ca"
179+
sha256: "7c0e5ad4ccdf4990120a7a6a2f067d274c107ab9830fd20b1d54bf3f0392ac02"
180180
url: "https://pub.dev"
181181
source: hosted
182-
version: "1.0.0"
182+
version: "1.1.0"
183183
splitio_ios:
184184
dependency: transitive
185185
description:
186186
name: splitio_ios
187-
sha256: "1c078bc49bf7b30df6ca50accb6a9eecf592ec607e20e77b1c6ecdabc7a44dc9"
187+
sha256: c15cd7dfd195df107ae07c030fd742dcabb0610c769466d6d7e3890d22a91bc2
188188
url: "https://pub.dev"
189189
source: hosted
190-
version: "1.0.0"
190+
version: "1.1.0"
191191
splitio_platform_interface:
192192
dependency: transitive
193193
description:
194194
name: splitio_platform_interface
195-
sha256: "8bcb1cab9f5fffb7b79cfeeaf6c80d82f8ede55c8d6ca7578ec78653f3f9e499"
195+
sha256: faa022814c7b2fc7b5f68b80b088e1638e06783419075176d1adadcf787897db
196196
url: "https://pub.dev"
197197
source: hosted
198-
version: "2.0.0"
198+
version: "2.1.0"
199199
splitio_web:
200200
dependency: transitive
201201
description:
202202
name: splitio_web
203-
sha256: "29dc1a55d80c026afb0f0bad378c81e44ee1e9da5faaf9e931f35b5dfd3ff5f3"
203+
sha256: "656cf71d4ec900cf1ad1b9eae20bbabe797de5c99f49584672161de9fe133afb"
204204
url: "https://pub.dev"
205205
source: hosted
206-
version: "1.0.0"
206+
version: "1.1.1"
207207
stack_trace:
208208
dependency: transitive
209209
description:

splitio/lib/split_client.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:splitio_platform_interface/splitio_platform_interface.dart';
22

3+
/// Abstract class representing a Split client.
34
abstract class SplitClient {
45
/// Performs an evaluation for the [featureFlagName] feature flag.
56
///
@@ -187,11 +188,13 @@ abstract class SplitClient {
187188
Future<SplitClient> whenTimeout();
188189
}
189190

191+
/// Default implementation of the Split client.
190192
class DefaultSplitClient implements SplitClient {
191193
final SplitioPlatform _platform;
192194
final String _matchingKey;
193195
final String? _bucketingKey;
194196

197+
/// Creates a new instance of the Split client.
195198
DefaultSplitClient(this._platform, this._matchingKey, this._bucketingKey);
196199

197200
@override

splitio/lib/splitio.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ export 'package:splitio_platform_interface/split_view.dart';
1212
export 'package:splitio_platform_interface/split_certificate_pinning_configuration.dart';
1313
export 'package:splitio_platform_interface/split_evaluation_options.dart';
1414
export 'package:splitio_platform_interface/split_rollout_cache_configuration.dart';
15+
export 'package:splitio_platform_interface/split_fallback_treatment.dart';
16+
export 'package:splitio_platform_interface/split_fallback_treatments_configuration.dart';
1517

18+
/// Callback function type for client readiness events.
1619
typedef ClientReadinessCallback = void Function(SplitClient splitClient);
1720

21+
/// Main class for interacting with the Split Flutter SDK.
1822
class Splitio {
1923
final String _sdkKey;
2024

@@ -112,12 +116,14 @@ class Splitio {
112116
return client;
113117
}
114118

119+
/// Gets the list of all feature flag names.
115120
Future<List<String>> splitNames() async {
116121
List<String> splitNames = await _platform.splitNames();
117122

118123
return splitNames;
119124
}
120125

126+
/// Gets the list of all feature flag views.
121127
Future<List<SplitView>> splits() async {
122128
return _platform.splits();
123129
}
@@ -128,14 +134,22 @@ class Splitio {
128134
return _platform.impressionsStream();
129135
}
130136

137+
/// Gets a specific feature flag view.
138+
///
139+
/// Returns null if the provided feature flag name is not found.
131140
Future<SplitView?> split(String splitName) async {
132141
return _platform.split(splitName: splitName);
133142
}
134143

144+
/// Gets the user consent status.
135145
Future<UserConsent> getUserConsent() async {
136146
return _platform.getUserConsent();
137147
}
138148

149+
/// Sets the user consent status.
150+
///
151+
/// [enabled] is a boolean that enables (`UserConsent.granted`)
152+
/// or disables (`UserConsent.declined`) data collection.
139153
Future<void> setUserConsent(bool enabled) async {
140154
return _platform.setUserConsent(enabled);
141155
}

splitio/pubspec.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: splitio
22
description: Official plugin for split.io, the platform for controlled rollouts, which serves features to your users via feature flags to manage your complete customer experience.
3-
version: 1.1.0
3+
version: 1.2.1
44
homepage: https://split.io/
55
repository: https://github.com/splitio/flutter-sdk-plugin/tree/main/splitio/
66

@@ -21,10 +21,10 @@ flutter:
2121
dependencies:
2222
flutter:
2323
sdk: flutter
24-
splitio_android: ^1.0.0
25-
splitio_ios: ^1.0.0
26-
splitio_web: ^1.0.0
27-
splitio_platform_interface: ^2.0.0
24+
splitio_android: ^1.1.0
25+
splitio_ios: ^1.1.0
26+
splitio_web: ^1.1.1
27+
splitio_platform_interface: ^2.1.0
2828
dev_dependencies:
2929
flutter_test:
3030
sdk: flutter

splitio_android/CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
1+
# 1.1.0 (Jan 28, 2026)
2+
* Added new configuration for Fallback Treatments, which allows setting a treatment value and optional config to be returned in place of "control", either globally or by flag. Read more in our docs.
3+
* Updated Android SDK to `5.4.2`.
4+
5+
# 1.1.0-rc.1 (Jan 28, 2026)
6+
17
# 1.0.0 (Aug 14, 2025)
2-
- Updated Android SDK to `5.3.1`.
8+
* Updated Android SDK to `5.3.1`.
39

410
# 1.0.0-rc.1 (Aug 14, 2025)
511

splitio_android/analysis_options.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@ include: package:flutter_lints/flutter.yaml
22

33
# Additional information about this file can be found at
44
# https://dart.dev/guides/language/analysis-options
5+
6+
linter:
7+
rules:
8+
- public_member_api_docs

0 commit comments

Comments
 (0)