A lightweight and flexible library to manage feature toggles in Android applications. Easily enable, disable, and manage features dynamically using a centralized API.
- Create, update, and delete feature toggles.
- Fetch active toggles and filter by date or range.
- View feature statistics (total and active toggles).
- Designed for seamless integration into Android applications.
- Includes a demo app showcasing library functionality.
Retrieve all active feature toggles for the current package:
FeatureToggle.getActiveFeatures(context, new FeatureToggle.Callback_Data<List<FeatureToggleItem>>() {
@Override
public void onSuccess(List<FeatureToggleItem> activeFeatures) {
for (FeatureToggleItem feature : activeFeatures) {
Log.d("FeatureToggle", "Active Feature: " + feature.getName());
}
}
@Override
public void onError(String errorMessage) {
Log.e("FeatureToggle", "Error fetching active features: " + errorMessage);
}
});Add a new feature toggle to the database:
FeatureToggleItem newFeature = new FeatureToggleItem();
newFeature.setName("christmas_theme");
newFeature.setDescription("Enable Christmas theme with red and green colors.");
newFeature.setBeginning_date("2025-12-01 00:00:00");
newFeature.setExpiration_date("2025-12-31 23:59:59");
FeatureToggle.createFeatureToggle(context, newFeature, new FeatureToggle.Callback_Data<String>() {
@Override
public void onSuccess(String message) {
Log.d("FeatureToggle", "Feature created successfully: " + message);
}
@Override
public void onError(String errorMessage) {
Log.e("FeatureToggle", "Error creating feature toggle: " + errorMessage);
}
});Modify the beginning and expiration dates for an existing feature:
FeatureToggleItem updatedFeature = new FeatureToggleItem();
updatedFeature.setBeginning_date("2025-12-15 00:00:00");
updatedFeature.setExpiration_date("2025-12-31 23:59:59");
FeatureToggle.updateFeatureDates(context, "feature-id", updatedFeature, new FeatureToggle.Callback_Data<String>() {
@Override
public void onSuccess(String message) {
Log.d("FeatureToggle", "Feature dates updated: " + message);
}
@Override
public void onError(String errorMessage) {
Log.e("FeatureToggle", "Error updating feature dates: " + errorMessage);
}
});Remove a feature toggle by ID:
FeatureToggle.deleteFeatureToggle(context, "feature-id", new FeatureToggle.Callback_Data<String>() {
@Override
public void onSuccess(String message) {
Log.d("FeatureToggle", "Feature deleted successfully: " + message);
}
@Override
public void onError(String errorMessage) {
Log.e("FeatureToggle", "Error deleting feature: " + errorMessage);
}
});To use this library in your project, follow these steps:
-
Add JitPack to your project-level
build.gradleorsettings.gradle:repositories { maven { url = uri("https://jitpack.io") } } -
Add the library dependency to your app-level
build.gradle:dependencies { implementation("com.github.gabi-elmaliah:FeatureToggleLibrary:1.0.0") } -
Using Gradle with
libs.versions.toml:- Add the following entry to
libs.versions.toml:[libraries] feature-toggle-library = { module = "com.github.gabi-elmaliah:FeatureToggleLibrary", version = "1.0.0" }
- Reference it in your
build.gradle:dependencies { implementation(libs.feature-toggle-library) }
- Add the following entry to
The complete documentation for the Feature Toggle Library is available here.
This library is licensed under the MIT License. See the MIT LICENSE file for details.