FeatureFlagsController 1.0.1

FeatureFlagsController 1.0.1

Jérôme Alves 维护。



  • Jérôme Alves

FeatureFlagsController

pod

FeatureFlagsController 是一个微库,它可以从项目中所有注册的特征标志自动构建 SwiftUI 表单视图,利用功能响应式编程的威力使用 Combine。

要求

  • iOS 13.0+
  • Xcode 12.0+
  • Swift 5.2+

安装

CocoaPods

将以下内容添加到您的 Podfile

pod "FeatureFlagsController"

Swift 包管理器

使用 Xcode 12 SPM 集成,在 https://github.com/DataDog/FeatureFlagsController 上使用

使用方法

FeatureFlagsView

所有已注册的功能标志都会出现在一个 FeatureFlagsView 中,该视图由一个 NavigationView 和一个分区 Form 组成。您可以在应用程序的任何位置显示此视图。例如,在一个隐藏的“调试”菜单中。

此表单会跟踪已注册的功能标志,并在运行时显示修改它们的正确 UI。一个 ToggleFeatureFlag 将显示一个简单的 ToggleUISwitch),而一个 PickerFeatureFlag 将显示一个分段控件或根据其提供的选择器样式显示一个子菜单。

声明

以下是声明新功能标志的方法:

let roundedCornersFeatureFlag = ToggleFeatureFlag(
    title: "Rounded Corners", defaultValue: true, group: "Home Screen"
)

声明功能标志本身并不会执行任何操作,但您仍然可以通过使用 value 属性来访问其值。某些功能标志类型具有对 value 属性的别名,以使调用点更清晰。例如,ToggleFeatureFlagisEnabled 别名。

注册

为了在 FeatureFlagsView 中显示功能标志,必须对该功能标志进行注册。register() 方法返回一个立即发出当前值,然后所有值更新的 Combine AnyPublisher

一旦 Combine 订阅被取消(例如,当拥有的视图控制器弹出或消失),功能标志将从 FeatureFlagsView 中消失。

roundedCornersFeatureFlag
    .register() // Adds the feature flag to the `FeatureFlagsView` and returns an AnyPublisher<Bool, Never>
    .map { $0 ? 16 : 0 } // Use all Combine operators you want to
    .assign(to: \.cornerRadius, on: squareView.layer) 
    .store(in: &cancellables) // On cancellation, the feature flag is removed from the `FeatureFlagsView`

许可证

本框架在 MIT 许可下提供。