How it works

A switch you can flip after the app ships.

Ship the code behind a flag, then decide when to turn it on — per environment.

  1. 01

    Create a flag

    Add a key like checkout.new_flow to an app and environment, with its initial status.

  2. 02

    Check it in your app

    Call isFeatureEnabled with the key and a default value for when the flag does not exist.

  3. 03

    Flip it when you are ready

    Enable or disable the flag in the dashboard. Apps see the change on their next fetch.

Integration

One call in your app.

Available in the Android, Apple (iOS, macOS, tvOS) and Flutter SDKs, from version 9.1.0.

val smartGrow = SmartGrowSecure.init(
    appId = "your-app-id",
    environmentId = "your-environment-id",
    apiToken = "your-api-token",
    serverBaseUrl = "https://smartgrow.your-company.com",
    context = applicationContext,
)

if (smartGrow.isFeatureEnabled("checkout.new_flow", defaultValue = false)) {
    showNewCheckout()
}
Capabilities

What you get.

Every item here is something the product does today.

  • On/off per environment

    Each app and environment has its own flags, so QA can try what production does not see yet.

  • Cached on the device

    Flags are cached for 60 seconds by default. Change the cache time, refresh on demand or clear the cache from the SDK.

  • Only your signed app

    Requests need the API token and your app's signing fingerprint, over a post-quantum channel on top of HTTPS.

  • Roles and audit log

    Choose who can create, change or delete flags, and see every change in the audit log.

Turn features on when you decide, without waiting for a new release.