Shunter 0.1.0

Shunter 0.1.0

Wojciech Chojnacki 维护。



Shunter 0.1.0

  • 作者
  • Wojciech Chojnacki

Shunter

GitHub license

Shunter 是一个小型框架,能够使您在项目中实现 特性开关

动机

特性开关是一个简单但非常强大的概念。它使开发者能够更早地合并代码、展示“未完成”的功能或提供替代的代码路径。另外,通过配套的远程服务器,它为在产品构建中禁用“问题”的新特性提供了一种方法。

所有这些都帮助提高了开发速度和验证新想法的效率。

这个库的目标是提供一种非常简单的方法,以快速为您的项目添加特性开关。

特性

  • 简单小巧
  • 定义特性的默认状态(开/关)
  • 开发/测试环境中覆盖设置的 UI

要求

  • iOS 11.0+ / macOS 10.12+
  • Xcode 10.2+
  • Swift 5+

安装

CocoaPods

将pods添加到您的Podfile

pod 'Shunter'

然后运行

pod install

将cocoapod安装到项目中后,使用以下方式导入库

import Shuter

使用

特性是一个包含标识符和注释的类型。

将所有特性分组在同一个位置的最佳方式是在Feature类型上创建一个扩展中的静态属性。例如

import Shunter

extension Feature {
    public static let feature01Feature = Feature("ios_feature01", comment: "Example feature #01")
    public static let feature02Feature = Feature("ios_feature02", comment: "Example feature #02")
}

初始化iOS应用程序中的FeatureManager的最佳位置是AppDelegate。下面的示例显示了manager以禁用Release构建中的shake动作进行设置。

#if DEBUG
let showOverrideScreenOnShake = true
#else
let showOverrideScreenOnShake = false
#endif
FeatureManager.setup(
    configuration: .defaultConfiguration(showOverrideScreenOnShake: showOverrideScreenOnShake),
    features: [
        .feature01Feature: false,
        .feature02Feature: true
    ])

在您的代码中检查特性状态的示例

if FeatureManager.shared.isEnabled(.feature02Feature) {
    // enable your feature 
} else {
    // the feature is disabled
}

或更简短版本

if FeatureManager.shared[.feature02Feature] {
// enable your feature 
} else {
// the feature is disabled
}

您将在Demo应用程序中找到更多代码示例。

作者

Wojciech Chojnacki

许可

本项目受MIT许可证许可 - 有关详细信息,请参阅LICENSE.md文件