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.
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
- –stars
- –forks
- –license
- –last push
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 */ }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.