目录
目录README.md

Toggles

Toggles is an elegant and powerful solution to feature flagging for Apple platforms.

Toggles CI status TogglesDemo CI status ToggleGen CI status ToggleCipher CI status JustTweakMigrator CI status

Overview

Feature flags (or feature toggles) are an important capability in modern applications. They allow apps to support different code paths and multiple features. Remote configuration of feature flags is what enables changing the behaviour of apps and the enabling/disabling of features without the need for expensive releases. Feature flags are at the core of A/B testing and experimentation.

Usage

Here is a quick and basic usage example.

Define a local datasource with your base configuration in DefaultDatasource.json.

{
  "toggles": [
    {
      "variable": "enable_feature_x",
      "bool": true
    },
    {
      "variable": "retry_count",
      "int": 3
    },
    {
      "variable": "welcome_text",
      "string": "Greetings!"
    }
    ...
}

Allocate a manager to interface with the configuration.

let datasourceUrl = Bundle.main.url(forResource: "DefaultDatasource", withExtension: "json")!
try ToggleManager(valueProviders: [], datasourceUrl: datasourceUrl)

Optionally set a mutable value provider and multiple value providers needed for you use case:

let mutableValueProvider = PersistentValueProvider(userDefaults: .standard)
let remoteValueProvider = SomeRemoteValueProvider(...)
let localValueProvider = try LocalValueProvider(jsonUrl: secondaryDatasourceUrl)
let valueProviders = [remoteValueProvider, localValueProvider]
try ToggleManager(mutableValueProvider: mutableValueProvider,
                  valueProviders: valueProviders,
                  datasourceUrl: datasourceUrl)

Retrieve values like so:

let shouldEnableFeatureX = manager.value(for: "enable_feature_x").boolValue
let welcomeText = manager.value(for: "welcome_text").stringValue

There’s a lot more to it: from code generation to observing toggle value changes.

Please refer to the DocC documentation and articles provided for more information.

Demo app

A demo app showcasing all the features is available and we encourage the reader to play with it.

Toggles view in Demo app

License

Toggles is released under the Apache 2 license. See LICENSE for details.

关于
2.3 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号