feature_flags

This package simply allows you to activate dynamically functionnalities of your app.

Usage

Setup

Wrap your app's widget in a Features widget.

Features(
    child: MaterialApp(
        /// ...
    ),
);

Testing if a feature is enabled

To test is a feature is currently enabled, use the Features.isFeatureEnabled function with a unique functionnality identifier.

if (Features.isFeatureEnabled(context, 'DECREMENT')) {
    /// The 'DECREMENT' feature is enabled
}

Enable or disable a feature

From the Features widget

By updating the flags from the Features widget.

Features(
    flags: [ 'DECREMENT' ],
    child: MaterialApp(
        /// ...
    ),
);

Enabling it locally from code

You can activate a feature by calling the Features.setFeature function. The feature flag is saved into shared preferences and is persisted between sessions.

Features.setFeature(
    context,
    'DECREMENT',
    true,
);

Using the debug view

The debug view allow your users to activate or deactivate any dynamic feature.

This may be useful during developpment, but it should be used carefuly.

DebugFeatures.show(
    context,
    availableFeatures: [
        Feature('DECREMENT', name: 'Decrement'),
        Feature('RESET', name: 'Reset'),
    ],
);

GitHub

https://github.com/aloisdeniel/feature_flag