Y—Analytics 的 AnalyticsEngine
协议的 Adobe 实现。
此框架链接了 Adobe Experience Platform Analytics SDK,以实现 Adobe 版本的 Y—Analytics 的 AnalyticsEngine
协议。
Y—Analytics Adobe 遵循 Apache 2.0 许可。
Adobe Experience Platform Analytics SDK 遵循 Apache 2.0 许可。
文档自动从源代码注释生成,并渲染为静态网站,托管在 GitHub Pages 上:https://yml-org.github.io/yanalytics-adobe-ios/
AdobeAnalyticsEngine
实现了 AnalyticsEngine
协议,并在其 track(event:)
方法中将 AnalyticsEvent
枚举映射到适当的 Adobe 方法。
Adobe SDK 内部只是使用单例对象,但 Y—Analytics 的目标是使用泛型包装器的依赖注入。这允许您的项目代码与您选择的分析提供商松散耦合。它还有助于单元测试和健康的应用程序架构。
请注意,即使您声明了多个 AdobeAnalyticsEngine
实例,它们都引用相同的 Adobe SDK 单例。
在对项目的各种组件进行单元测试时,您应该注入 MockAnalyticsEngine
的实例,而不是 Adobe 引擎。这允许您的单元测试在没有任何 Adobe 依赖项的情况下运行,并允许您验证哪些事件被跟踪以及何时被跟踪。
您可以通过传递 Adobe 应用程序 ID 来初始化 AdobeAnalyticsEngine
。
import YAnalyticsAdobe
final class AppCoordinator {
let engine: AnalyticsEngine = {
let config = AdobeAnalyticsConfiguration(appId: "S3cr3t!")
return AdobeAnalyticsEngine(configuration: config)
}()
func trackSomething(someData: [String: Any]?) {
engine.track(
event: .event(name: "Something", parameters: someData)
)
}
}
除了必需的应用程序 ID 之外,还可以使用以下附加参数初始化 AdobeAnalyticsConfiguration
AnalyticsEvent
映射到 Adobe 事件的信息。import YAnalyticsAdobe
final class AppCoordinator {
let extensions: [NSObject.Type] = ...
let logLevel: LogLevel = ...
let mappings: [String: AdobeEventMapping] = ...
let engine: AnalyticsEngine = {
let config = AdobeAnalyticsConfiguration(
extensions: extensions,
appId: "S3cr3t",
logLevel: logLevel,
mappings: mappings
)
return AdobeAnalyticsEngine(configuration: config)
}()
}
Y—Analytics Adobe 依赖于我们的 Y—Analytics 框架(它也是开源的,并遵循 Apache 2.0 许可)。
您可以将 Y—Analytics Adobe 添加到 Xcode 项目,方法是将其添加为程序包依赖项。
brew install swiftlint
sudo gem install jazzy
克隆 repo 并在 Xcode 中打开 Package.swift
。
我们使用 语义化版本控制。
{major}.{minor}.{patch}
例如
1.0.5
我们为我们的框架使用简化的分支策略。
main
main
分支出来main
。main
被标记为每个发布的更新版本号feature/{ticket-number}-{short-description}
bugfix/{ticket-number}-{short-description}
例如
feature/CM-44-button
bugfix/CM-236-textview-color
在提交拉取请求之前,您应该
swiftlint
并确认没有违规行为。jazzy
并确认您有 100% 的文档覆盖率。git rebase -i HEAD~{commit-count}
将您最后的 {commit-count} 个提交合并为功能块。main
)的 HEAD 自您创建分支以来已更新,请使用 git rebase main
来 rebase 您的分支。提交拉取请求时
合并拉取请求时
1.0.5
)您可以使用终端中的以下命令直接从源代码生成您自己的本地文档集
jazzy
这会在 /docs
下生成一组文档。默认配置在默认配置文件 .jazzy.yaml
文件中设置。
要查看其他文档选项,请键入
jazzy --help
每次提交被推送到 main
时,GitHub Action 都会自动运行,运行 Jazzy 以生成我们 GitHub 页面上的文档:https://yml-org.github.io/yanalytics-adobe-ios/