Skip to content

Service to handle experimental features in the app #2269

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
maskaravivek opened this issue Jan 4, 2019 · 3 comments
Open

Service to handle experimental features in the app #2269

maskaravivek opened this issue Jan 4, 2019 · 3 comments

Comments

@maskaravivek
Copy link
Member

Summary:

Here's my visualization of a service that can handle experimental features.

We write a simple service called GatekeeperService. The responsibility of this service will be to:

Control the access of any feature at a very granular level.

It will look like:

public interface GatekeeperService() {
    boolean isGatekeeperEnabled(String gatekeeperName);
}

And gatekeeperName can be:

- is_search_nearby_location_enabled
- is_retry_failed_upload_enabled
- is_review_uploads_enabled
- is_multiple_in_app_uploads_enabled

isGatekeeperEnabled can return if a particular feature(key) is true or false.

In the most simplistic form, it can decide to enable/disable any feature on the basis of product flavor.

These are all the things based on which we can enable/disable any feature for a particular user:

  • has user enabled experimental features or not
  • Flavor: Beta/Alpha/Prod
  • Android Version
  • Username
  • Country or location.
@vanshikaarora
Copy link
Contributor

Hey can you elaborate(or provide with examples) where will you require the app to enable/disable some features for a particular user

@albendz
Copy link
Contributor

albendz commented Jan 22, 2019

Would something like FireBase be sufficient for this rather than writing a new service? Are there limitations on pre-existing cloud solutions we may not be able to use?

@maskaravivek
Copy link
Member Author

Would something like FireBase be sufficient for this rather than writing a new service? Are there limitations on pre-existing cloud solutions we may not be able to use?

In fact, we require something exactly like Firebase Remote config but due to privacy reasons, we might not want to use a 3rd party service.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants