Y—Analytics 的 AnalyticsEngine
协议的 Pendo 实现。
此框架连接 Pendo iOS SDK,以实现 Y—Analytics 的 AnalyticsEngine
协议的 Pendo 版本。
Y—Analytics Pendo 在 Apache 2.0 许可下获得许可。
Pendo iOS SDK 在其 GitHub 页面上没有列出任何许可。
文档由源代码注释自动生成,并呈现为托管在 GitHub Pages 上的静态网站:https://yml-org.github.io/yanalytics-pendo-ios/
PendoAnalyticsEngine
实现了 AnalyticsEngine
协议,并且在其 track(event:)
方法中,它将 AnalyticsEvent
枚举映射到适当的 Pendo 方法。
在内部,Pendo SDK 仅使用单例对象,但 Y—Analytics 的目标是使用通用包装器的依赖注入。 这允许您的项目代码与您选择的分析提供商松散耦合。 它还有助于单元测试和健康的应用程序架构。
请注意,即使您声明了 PendoAnalyticsEngine
的多个实例,它们都引用相同的 Pendo SDK 单例。
在对项目的各个组件进行单元测试时,您应该注入 MockAnalyticsEngine
的实例,而不是 Pendo 引擎。 这允许您的单元测试在没有任何 Pendo 依赖的情况下运行,并允许您验证跟踪了哪些事件以及何时跟踪。
您可以通过传递 Pendo 应用密钥来初始化 PendoAnalyticsEngine
。
import YAnalyticsPendo
final class AppCoordinator {
let engine: AnalyticsEngine = {
let config = PendoAnalyticsConfiguration(appKey: "S3cr3t!")
return PendoAnalyticsEngine(configuration: config)
}()
func trackSomething(someData: [String: Any]?) {
engine.track(
event: .event(name: "Something", parameters: someData)
)
}
}
除了必需的应用密钥之外,还可以使用以下附加参数初始化 PendoAnalyticsConfiguration
AnalyticsEvent
映射到 Pendo 事件的信息import YAnalyticsPendo
final class AppCoordinator {
let mappings: [String: PendoEventMapping] = ...
let session: PendoSessionData = ...
let isDebugMode: Bool = false
let engine: AnalyticsEngine = {
let config = PendoAnalyticsConfiguration(
appKey: "S3cr3t!",
mappings: mappings,
sessionData: session,
debugMode: isDebugMode
)
return PendoAnalyticsEngine(configuration: config)
}()
}
Y—Analytics Pendo 依赖于我们的 Y—Analytics 框架(它也是开源的,并使用 Apache 2.0 许可)。
您可以通过将 Y—Analytics Pendo 添加为包依赖项来将其添加到 Xcode 项目。
brew install swiftlint
sudo gem install jazzy
克隆存储库并在 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-pendo-ios/