Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@dubemike
Last active December 11, 2019 06:30
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dubemike/99f952d217090889e6e5ee7e0da3a2f4 to your computer and use it in GitHub Desktop.
Save dubemike/99f952d217090889e6e5ee7e0da3a2f4 to your computer and use it in GitHub Desktop.
A lightweight enum based Feature flag system
enum FeatureFlag: String, CaseIterable {
case featureOne
}
extension FeatureFlag {
var isEnabled: Bool {
switch self {
case .featureOne:
if isRunningInAppStore() {
return false
}
return featureFlagValue()
}
}
private var key: String {
return "com.companyname.featureflag." + rawValue
}
private func featureFlagValue() -> Bool {
return UserDefaults.standard.bool(forKey: key)
}
func enable() {
UserDefaults.standard.set(true, forKey: key)
}
func disable() {
UserDefaults.standard.set(false, forKey: key)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment