github.com/immobiliare/RealFlags

RealFlags

Feature-flag abstraction over multiple providers queried by priority, with a UI to browse and change values at runtime.

Maintained at Immobiliare·Swift·since 2021

In one look

@Flag(default: false, description: "New search UI")
var newSearch: Bool

let flags = FlagsLoader(UserFlags.self, providers: [remote, local])
if flags.newSearch { /* type-safe, with autocomplete */ }

Mobile releases are slow and irreversible: the app you shipped is the app your users keep for days. Feature flags are the only cheap way to separate deploy from release, but every team rebuilds them badly, as a scattering of booleans nobody can enumerate.

What it does

  • Typed flags, not string keys

    Flags are declared as properties with a type, so the compiler knows about them and nobody greps for a key.

  • Providers queried in order

    Several data sources answer by priority, so a local override can shadow the remote value while you work.

  • A browser on device

    A UI lists every flag, shows where its value came from and lets you change it at runtime.