Feature flags

All features MUST be gated behind feature flags from initial implementation. Define a FeatureFlagProvider interface (isEnabled(key) -> Bool), provide a local default implementation (UserDefaults/SharedPreferences/localStorage), swap in a backend implementation later via DI.

Each spec SHOULD list flag keys in a Feature Flags section.


Feature Flags

All features MUST be gated behind feature flags from initial implementation. Define a FeatureFlagProvider interface (isEnabled(key) -> Bool), provide a local default implementation, and swap in a backend implementation later via dependency injection. Each spec SHOULD list flag keys in a Feature Flags section.

Swift

Protocol + UserDefaults-backed implementation as the default.

Kotlin

Interface + SharedPreferences-backed implementation as the default.

TypeScript

TypeScript interface + localStorage-backed implementation as the default.

C#

IFeatureManager interface + local JSON config as the default. Use the Microsoft.FeatureManagement NuGet package. Swap in Azure App Configuration for server-side flag evaluation later.

version
1.0.0
platforms
csharp, kotlin, swift, typescript
tags
feature-flags, feature-management
author
Mike Fullerton
modified
2026-03-27

Change History

Version Date Author Summary
1.0.0 2026-03-27 Mike Fullerton Initial creation