Skip to main content

configcat_client 5.1.0 copy "configcat_client: ^5.1.0" to clipboard
configcat_client: ^5.1.0 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) #

pub package Dart CI

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: ^5.0.0

2. Go to the ConfigCat Dashboard to get your SDK Key: #

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.

6
likes
140
points
14.2k
downloads

Documentation

API reference

Publisher

verified publisherconfigcat.com

Weekly Downloads

Dart (Flutter) SDK for ConfigCat. ConfigCat is a hosted feature flag service that lets you manage feature toggles across frontend, backend, mobile, desktop apps.

Homepage
Repository (GitHub)
View/report issues
Contributing

License

MIT (license)

Dependencies

crypto, dio, json_annotation, pub_semver

More

Packages that depend on configcat_client