这个轻量级框架为分析 SDK 提供了一个通用的包装器,适用于依赖注入。它的目的是避免应用程序与特定的分析提供商紧密耦合。
Y—Analytics 采用 Apache 2.0 许可证。
文档自动从源代码注释生成,并呈现为托管在 GitHub Pages 上的静态网站:https://yml-org.github.io/yanalytics-ios/
是一个抽象,旨在代表任何分析包,无论是 Firebase、Adobe、任何其他第三方分析供应商,还是您自己的自定义实现。
关键在于抽象出分析供应商选择的细节,以便可以在任何时候切换,而不会产生重大的技术债务。
它还鼓励使用依赖注入来为需要它的组件提供分析引擎。 这应该使编写这些组件的单元测试更加容易(通过注入模拟或甚至什么都不注入)。
AnalyticsEngine
只有一个方法
public protocol AnalyticsEngine {
/// Track an analytics event
/// - Parameter event: the event to log
func track(event: AnalyticsEvent)
}
是一个枚举,包含一些典型事件的案例。
public enum AnalyticsEvent {
/// Screen view event
/// - Parameter screenName: screen name
case screenView(screenName: String)
/// User property event
/// - Parameters:
/// - name: user property name
/// - value: user property value
case userProperty(name: String, value: String)
/// Generic event
/// - Parameters:
/// - name: event name
/// - parameters: event metadata to track
case event(name: String, parameters: Metadata?)
}
是 AnalyticsEngine
的一个辅助实现,允许您指定引擎数组。 这样您就可以将记录器与实际的分析引擎(例如 Firebase)结合使用,以帮助进行调试。
是 AnalyticsEngine
的一个简单实现,它使用 print
语句记录输出。(在大多数情况下,您应该使用 LoggerAnalyticsEngine
代替。)
是 AnalyticsEngine
的一个简单实现,它使用 Apple 的 Logger
API 记录输出。
您可以通过将其添加为包依赖项来将 Y—Analytics 添加到 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-ios/