No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
flaggr
gradle
sample
.gitignore
CHANGELOG.md
LICENSE
README.md
RELEASE.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

Flaggr

A library that allows you to enable/disable features and/or part of code regarding a Context

How to include it

compile 'com.comuto:flaggr:0.X.X'

How to use it

Initialize at the start of the application :

// on onCreate of Application :
Flaggr.with(this).loadConfig(FLAGGR_CONFIG_URI);

The "FLAGGR_CONFIG_URI" is the uri where your flaggs are stored (json file for example)

To reload the feature flags file, the current best solution is to add this code in the onResume method of your MainActivity

Flaggr.with(this).reloadConfig();

Checking if a flag is active :

1 - get Flaggr instance :

  • In an activity & Fragment :
Flaggr.with(this);

2 - Construct the flag context and pass it to isActive (There is a default value of each setter, you can override only the needed setters) :

MyFlagContext.FlagContextBuilder builder = new MyFlagContext.FlagContextBuilder()
        .setLocale(Locale.getDefault())
        .setUserId(myUserId);
Flaggr.with(this).isActive(getString(R.string.my_flag), builder.build());

Your context can contain any type of data, but IT MUST IMPLEMENT THE INTERFACE FlagContextInterface

You can also specify a default value if the flag is not found or an error happens when processing

Flaggr.with(this).isActive(getString(R.string.my_flag), builder.build(), true);

License

Copyright 2016 BlaBlaCar, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.