Y—Analytics
一个用于 Apple 平台的可注入分析包装器。

这个轻量级框架为分析 SDK 提供了一个通用的包装器,适用于依赖注入。它的目的是避免应用程序与特定的分析提供商紧密耦合。

许可

Y—Analytics 采用 Apache 2.0 许可证

文档

文档自动从源代码注释生成,并呈现为托管在 GitHub Pages 上的静态网站:https://yml-org.github.io/yanalytics-ios/

用法

AnalyticsEngine

是一个抽象,旨在代表任何分析包,无论是 Firebase、Adobe、任何其他第三方分析供应商,还是您自己的自定义实现。

关键在于抽象出分析供应商选择的细节,以便可以在任何时候切换,而不会产生重大的技术债务。

它还鼓励使用依赖注入来为需要它的组件提供分析引擎。 这应该使编写这些组件的单元测试更加容易(通过注入模拟或甚至什么都不注入)。

AnalyticsEngine 只有一个方法

public protocol AnalyticsEngine {
    /// Track an analytics event
    /// - Parameter event: the event to log
    func track(event: AnalyticsEvent)
}

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?)
}

CompoundAnalyticsEngine

AnalyticsEngine 的一个辅助实现,允许您指定引擎数组。 这样您就可以将记录器与实际的分析引擎(例如 Firebase)结合使用,以帮助进行调试。

ConsoleAnalyticsEngine

AnalyticsEngine 的一个简单实现,它使用 print 语句记录输出。(在大多数情况下,您应该使用 LoggerAnalyticsEngine 代替。)

LoggerAnalyticsEngine

AnalyticsEngine 的一个简单实现,它使用 Apple 的 Logger API 记录输出。

安装

您可以通过将其添加为包依赖项来将 Y—Analytics 添加到 Xcode 项目。

  1. 文件菜单中,选择添加包...
  2. 在包存储库 URL 文本字段中输入“https://github.com/yml-org/yanalytics-ios
  3. 单击添加包

为 Y—Analytics 做贡献

要求

SwiftLint (linter)

brew install swiftlint

Jazzy (文档)

sudo gem install jazzy

设置

克隆存储库并在 Xcode 中打开 Package.swift

版本控制策略

我们使用 语义化版本控制

{major}.{minor}.{patch}

例如:

1.0.5

分支策略

我们为我们的框架使用简化的分支策略。

分支命名约定

feature/{ticket-number}-{short-description}
bugfix/{ticket-number}-{short-description}

例如:

feature/CM-44-button
bugfix/CM-236-textview-color

拉取请求

在提交拉取请求之前,您应该

  1. 编译并确保没有警告和错误。
  2. 运行所有单元测试并确认一切通过。
  3. 检查单元测试覆盖率并确认所有新的/修改的代码都已完全覆盖。
  4. 从命令行运行 swiftlint 并确认没有违规。
  5. 从命令行运行 jazzy 并确认您具有 100% 的文档覆盖率。
  6. 考虑使用 git rebase -i HEAD~{commit-count} 将您的最后 {commit-count} 个提交合并成功能块。
  7. 如果父分支(通常是 main)的 HEAD 在您创建分支后已更新,请使用 git rebase main 来 rebase 您的分支。
    • 永远不要将父分支合并到您的分支中。
    • 始终从父分支 rebase 您的分支。

提交拉取请求时

合并拉取请求时

发布新版本

生成文档(通过 Jazzy)

您可以使用以下来自终端的命令直接从源代码生成您自己的本地文档集

jazzy

这会在 /docs 下生成一组文档。 默认配置在默认配置文件 .jazzy.yaml 文件中设置。

要查看其他文档选项,请键入

jazzy --help

每次将提交推送到 main 时,GitHub Action 都会自动运行,运行 Jazzy 为我们的 GitHub 页面生成文档:https://yml-org.github.io/yanalytics-ios/