configcat_client 4.2.1
configcat_client: ^4.2.1 copied to clipboard
Dart (Flutter) SDK for ConfigCat. ConfigCat is a hosted feature flag service that lets you manage feature toggles across frontend, backend, mobile, desktop apps.
ConfigCat SDK for Dart (Flutter) #
ConfigCat SDK for Dart provides easy integration for your application to ConfigCat.
Getting started #
1. Install the ConfigCat SDK #
With Dart:
dart pub add configcat_client
With Flutter:
flutter pub add configcat_client
Or put the following directly to your pubspec.yml and run dart pub get or flutter pub get.
dependencies:
configcat_client: ^4.0.0
2. Go to the ConfigCat Dashboard to get your SDK Key: #

3. Import the configcat_client package in your application code #
import 'package:configcat_client/configcat_client.dart';
4. Create a ConfigCat client instance #
final client = ConfigCatClient.get(sdkKey: '#YOUR-SDK-KEY#');
5. (Optional) Set up Flutter caching #
If you're using the SDK in a Flutter application, we recommend to use our Flutter Preferences Cache for caching. It's based on the shared_preferences package.
final client = ConfigCatClient.get(
sdkKey: '#YOUR-SDK-KEY#',
options: ConfigCatOptions(cache: ConfigCatPreferencesCache()));
6. Get your setting value #
final isMyAwesomeFeatureEnabled = await client.getValue(key: 'isMyAwesomeFeatureEnabled', defaultValue: false);
if (isMyAwesomeFeatureEnabled) {
doTheNewThing();
} else {
doTheOldThing();
}
7. Close the client on application exit #
client.close();
Getting user-specific setting values with Targeting #
Using this feature, you will be able to get different setting values for different users in your application by passing a User Object to the getValue() function.
Read more about Targeting here.
User Object #
Percentage and targeted rollouts are calculated by the user object passed to the configuration requests. The user object must be created with a mandatory identifier parameter which uniquely identifies each user:
final user = ConfigCatUser(identifier: '#USER-IDENTIFIER#');
final isMyAwesomeFeatureEnabled = await client.getValue(key: 'isMyAwesomeFeatureEnabled', defaultValue: false, user: user);
if (isMyAwesomeFeatureEnabled) {
doTheNewThing();
} else {
doTheOldThing();
}
Sample/Demo app #
Polling Modes #
The ConfigCat SDK supports three different polling mechanisms to acquire the setting values from ConfigCat. After the latest setting values are downloaded, they are stored in an internal cache . After that, all requests are served from the cache. Read more about Polling Modes and how to use them at ConfigCat Dart Docs.
Support #
If you need help using this SDK, feel free to contact the ConfigCat Staff at https://configcat.com. We're happy to help.
Contributing #
Contributions are welcome. For more info please read the Contribution Guideline.
Contributors #
Special thanks to @augustorsouza, @miguelspe, and @mugbug from @quintoandar who made available the initial project.
About ConfigCat #
ConfigCat is a feature flag and configuration management service that lets you separate feature releases from code deployments. You can turn features ON/OFF using the ConfigCat Dashboard even after they are deployed. ConfigCat lets you target specific groups of users based on region, email, or any other custom user attribute.
ConfigCat is a hosted feature flag service that lets you manage feature toggles across frontend, backend, mobile, and desktop apps. Alternative to LaunchDarkly. Management app + feature flag SDKs.