Skip to content

Repository files navigation

Feature Toggle Library

A lightweight and flexible library to manage feature toggles in Android applications. Easily enable, disable, and manage features dynamically using a centralized API.


Features

  • 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.

Usage

Examples of Usage

1. Fetch Active Features

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);
    }
});

2. Create a Feature Toggle

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);
    }
});

3. Update Feature Dates

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);
    }
});

4. Delete a Feature Toggle

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);
    }
});

How to Use

To use this library in your project, follow these steps:

  1. Add JitPack to your project-level build.gradle or settings.gradle:

    repositories {
        maven { url = uri("https://jitpack.io") }
    }
  2. Add the library dependency to your app-level build.gradle:

    dependencies {
        implementation("com.github.gabi-elmaliah:FeatureToggleLibrary:1.0.0")
    }
  3. 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)
      }

Documentation

The complete documentation for the Feature Toggle Library is available here.

License

This library is licensed under the MIT License. See the MIT LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages