SwiftAnalytics 是一个 API 包,旨在建立一个生态系统可以使用的通用 API。 为了使分析真正适用于实际工作负载,我们需要与 SwiftAnalytics 兼容的分析后端,这些后端可以将事件发送到 Firebase、Amplitude、DataDog 等。
要依赖 analytics API 包,您需要在 Package.swift 中声明您的依赖项
.package(url: "https://github.com/dankinsoid/swift-analytics.git", from: "1.9.0"),
并添加到您的应用程序/库目标,将 “SwiftAnalytics” 添加到您的依赖项中,例如这样
.target(name: "BestExampleApp", dependencies: [
.product(name: "SwiftAnalytics", package: "swift-analytics")
],
import SwiftAnalytics
let analytics = Analytics()
analytics.send("hello world")
Analytics
用于发送事件,因此是 SwiftAnalytics 中最重要的类型,因此它们的使用应该尽可能简单。
Analytics.Event
是一种表示应该发送的事件的类型。 它具有名称和参数字典。 例子
let event = Analytics.Event("hello world", parameters: ["foo": "bar"])
Analytics
具有参数,这些参数可以在由同一 Analytics
实例发送的所有事件之间共享。 例子
var analytics = Analytics()
analytics.parameters["user-id"] = "\(UUID())"
analytics.send("hello world")
有一些辅助函数可以设置参数
let analytics2 = analytics1
.with("user-id", UUID())
.with("user-name", "Alice")
let analytics3 = analytics2
.with(["session-id": UUID()])
注意:如果您不想实现自定义 analytics 后端,则本节中的所有内容可能不太相关,请随意跳过。
要成为所有 SwiftAnalytics 使用者都可以使用的兼容 analytics 后端,您需要做两件事
AnalyticsHandler 或 analytics 后端实现是符合以下协议的任何内容
public protocol AnalyticsHandler {
var parameters: Analytics.Parameters { get set }
func send(event: Analytics.Event, file: String, function: String, line: UInt)
}
其中 parameters
是可以在由同一 AnalyticsHandler
实例发送的所有事件之间共享的参数字典,send(event:file:function:line:)
是发送事件的函数。
指示 SwiftAnalytics 使用您的 analytics 后端作为整个应用程序(包括所有库)应该使用的后端非常简单
AnalyticsSystem.bootstrap(MyAnalyticsHandler())
创建一个 Package.swift
文件。
// swift-tools-version:5.7
import PackageDescription
let package = Package(
name: "SomeProject",
dependencies: [
.package(url: "https://github.com/dankinsoid/swift-analytics.git", from: "1.9.0")
],
targets: [
.target(name: "SomeProject", dependencies: ["SwiftAnalytics"])
]
)
$ swift build
dankinsoid, voidilov@gmail.com
swift-analytics 在 MIT 许可证下可用。 有关更多信息,请参见 LICENSE 文件。