UnleashProxyClientSwift 1.2.1

UnleashProxyClientSwift 1.2.1

Unleash维护。



  • 作者

unleash-proxy-client-swift

unleash-proxy-client-swift使得原生应用程序和其他Swift平台连接到unleash代理变得简单。代理将评估给定上下文的特征切换,并返回与提供的上下文相关的特征标志列表。

然后,unleash-proxy-client-swift将在内存中的映射中缓存这些切换,并按可配置的间隔刷新配置,使对切换配置的查询极快。

要求

  • MacOS: 12.15
  • iOS: 12

安装

按照以下步骤安装unleash-proxy-client-swift:

  1. 在您的Xcode项目中,转到File -> Swift Packages -> Add Package Dependency
  2. 提供此存储库的链接
  3. 设置合适的包约束(通常直到下一个主要版本)
  4. 让Xcode查找并安装必要的包

完成后,你应该能在项目文件浏览器中看到SwiftEventBus和UnleashProxyClientSwift被列为依赖项。

使用方法

要开始,您需要导入并实例化Unleash客户端

iOS >= 13

import SwiftUI
import UnleashProxyClientSwift

// Setup Unleash in the context where it makes most sense

var unleash = UnleashProxyClientSwift.UnleashClient(unleashUrl: "https://<unleash-instance>/api/frontend", clientKey: "<client-side-api-token>", refreshInterval: 15, appName: "test")

unleash.start()

iOS >= 12

import SwiftUI
import UnleashProxyClientSwift

// Setup Unleash in the context where it makes most sense

var unleash = UnleashProxyClientSwift.UnleashClientBase(unleashUrl: "https://<unleash-instance>/api/frontend", clientKey: "<client-side-api-token>", refreshInterval: 15, appName: "test")

unleash.start()

如上例,我们导入UnleashProxyClientSwift并实例化客户端。您需要提供以下参数

运行unleash.start()将向代理发送第一次请求并检索功能开关配置,并在后台设置轮询间隔。

注意:在启动配置可能不可用的情况下,可能无法加载配置,这意味着在配置未加载的情况下请求功能开关可能会导致错误结果。如果需要确保配置已加载,我们可以发出一个您可以订阅的事件,一旦配置加载完毕。更多内容请参阅事件部分。

配置加载完毕后,您可以对缓存进行查询以查找特定的功能开关

if unleash.isEnabled(name: "ios") {
    // do something
} else {
   // do something else
}

您还可以设置变体并在类似方式中使用它们

var variant = unleash.getVariant(name: "ios")
if variant.enabled {
    // do something
} else {
   // do something else
}

更新上下文

要更新上下文,您可以使用以下方法:

var context: [String: String] = [:]
context["userId"] = "c3b155b0-5ebe-4a20-8386-e0cab160051e"
unleash.updateContext(context: context)

这将停止并启动轮询间隔,以便使用新的上下文值更新轮询。

您可以使用预定义字段中的任何一个。如果需要支持自定义属性,请将它们作为第二个参数传递。

var context: [String: String] = [:]
context["userId"] = "c3b155b0-5ebe-4a20-8386-e0cab160051e"
var properties: [String: String] = [:]
properties["customKey"] = "customValue";
unleash.updateContext(context: context, properties: properties)

事件

代理客户端会发出您可以订阅的事件。以下事件可用:

  • "ready"
  • "update"
  • "sent"(已发送度量)
  • "error"(度量发送错误)

您可以使用以下方式使用它们:

func handleReady() {
    // do this when unleash is ready
}

unleash.subscribe(name: "ready", callback: handleReady)

func handleUpdate() {
    // do this when unleash is updated
}

unleash.subscribe(name: "update", callback: handleUpdate)

当客户端收到它的第一组功能开关并将其缓存在内存中时,将触发一次准备就绪事件。随后的事件将是一个更新事件,如果功能开关配置发生变化,则会触发它。

发布

注意:要发布软件包,您需要安装CocoaPods

首先,您需要添加一个标签。对于Swift包管理器来说,只需要发布标签就足够了,但对于CocoaPods用户来说,确保他们也能使用代码是很有礼貌的。

git tag -a 0.0.4 -m "v0.0.4"

请确保将该标签推送到远程位置。

接下来的几个命令假设您已经在shell上安装了CocoaPods。

将软件包的版本号升级,您可以在UnleashProxyClientSwift.podspec中找到它,我们使用SemVer进行此项目。一旦将其提交并合并到主分支

清理podsSpec是一个好主意

pod spec lint UnleashProxyClientSwift.podspec

一旦成功,您就可以进行真正的发布

pod trunk push UnleashProxyClientSwift.podspec --allow-warnings