Ga naar inhoud

Android-quickstart

Binnen een paar minuten leest je Android-app een echte feature flag — duurzaam gecacht, veilig offline, met de apparaatidentiteit voor je gemunt en opgeslagen.

Vereist minSdk 26 (Android 8.0). Kotlin, met coroutines als enige dependency-familie.

De SDK is pre-release (v0.1.0) en is nog niet gepubliceerd naar Maven Central of enig ander register. Heeft je team toegang gekregen tot de repository, gebruik hem dan als source dependency — een Gradle included build van FortressFlag_SDK_android, waarvan de library-module fortressflag is.

Eén keer, bij het opstarten van de app — je Application.onCreate is de natuurlijke plek:

import com.fortressflag.sdk.Configuration
import com.fortressflag.sdk.Environment
import com.fortressflag.sdk.FortressFlag
FortressFlag.start(
context,
Configuration(
sdkKey = "ffc_prod_…", // van het SDK-sleutelscherm van je project
environment = Environment.PRODUCTION,
),
)

De SDK laadt gecachte waarden onmiddellijk en polt op de achtergrond naar wijzigingen. De sleutel is een clientsleutel — hij gaat by design mee in je app.

if (FortressFlag.isEnabled("new-checkout", default = false)) {
// toon de nieuwe checkout
}

stringValue en numberValue lezen multivariate flags op dezelfde manier, en elke read wordt uit het geheugen geserveerd — geen I/O, geen netwerk, op welke thread je ook aanroept.

Dat is het — je flag is live. Zet hem om in het dashboard en de app volgt bij zijn volgende poll.

Als FortressFlag plat ligt, ligt jouw app dat niet

Section titled “Als FortressFlag plat ligt, ligt jouw app dat niet”

isEnabled, stringValue en numberValue throwen nooit. Elke read valt terug via de laatste waarden die dit apparaat werkelijk zag — ook uit vorige runs, via de duurzame cache — en dan op je standaard op de aanroepplek. Een storing bereikt je gebruikers nooit.

Twee platformfeiten, voordat ze een factuur bereiken

Section titled “Twee platformfeiten, voordat ze een factuur bereiken”

FortressFlag factureert per apparaat, en Android heeft twee feiten die je vooraf wilt kennen:

  • Identiteit is vandaag per app. Draait een gebruiker drie van je apps op één telefoon, dan telt dat op dit moment als maximaal drie apparaten — Android-apps delen nog geen FortressFlag-identiteit zoals een iOS-appfamilie dat kan.
  • Je app verwijderen wist de identiteit. Android wist de Keystore-gedekte data van de app bij verwijdering, dus een herinstallatie munt een verse identiteit — en telt als een nieuw apparaat. (Dit verschilt van iOS, waar de keychain blijft bestaan.)

De identiteit zelf is willekeurig gemunt en gepseudonimiseerd — nooit afgeleid van ANDROID_ID of enige hardware-identifier. En emulators munten een sim_-identiteit: normaal flags geserveerd, nooit gefactureerd.