DLAnalytics 2.1.0

DLAnalytics 2.1.0

lengocduy 维护。



DLAnalytics

CI Version License Platform Carthage compatible

摘要分析框架支持

  • 统一分析。
  • 模块化、集中化分析。
  • 更简单的新分析插件。
  • 标准化跟踪方法和事件。

要求

  • Xcode 12+
  • Swift 5.0+

如何

设置

  1. 实现您的 AnalyticsService。
class ClientAnalyticsImpl: AnalyticsService {
    // Specify whitelist events. Accept all events by default
    var allowEvents: Set<String> {
		Set<String>(arrayLiteral: "\(InputOTPEvent.self)", "\(CheckoutEvent.self)")
	}

    func setUserIdentifyProperty(_ property: [String : String]) {
		// To support identify the user"
	}
	
	func reset() {
		// reset all data related to the user e.g user logout"
	}
	
	func send(event: AnalyticsEvent) {
        // Specific Analytics implementation e.g FireBaseAnalytics, MixPanel, etc.
		print("### Send an event name: \(event.name), payload = \(event.payload)")
	}

    func send(event: AnalyticsEvent, from viewController: DLAnalytics.ViewController) {
		print("### Send an event name:  \(event.name), controller = \(ViewController.self)" )
	}
}
  1. 声明您的自定义事件。
// MARK: - Support dynamic configurable payload for an event
struct InputOTPEvent: AnalyticsEvent {
    private(set) var payload: [String: String]
    
    var name: String {
        return "InputOTP"
    }

    static func inputOTPSuccess() -> InputOTPEvent {
        return InputOTPEvent(payload: ["OTPValid": "1"])
    }
}

// MARK: - Enum support static configurable payload for an event
@frozen
enum CheckoutEvent: String, AnalyticsEvent {
	case success = "Checkout_Success"
	case error = "Checkout_Error"

	internal var payload: [String: Any] {
		return [:]
	}
	
	var name: String {
		return rawValue
	}
}
  1. 注册您的自定义 AnalyticsService。
let analyticsService = ClientAnalyticsImpl()
Analytics.registerAnalyticsService(analyticsService)

使用

/// Simulate tracking event InputOTP success
Analytics.send(event: InputOTPEvent.inputOTPSuccess())
Analytics.send(event: CheckoutEvent.success, from viewController: checkoutVC)

/// Output:
Send an event name: InputOTP, payload = ["OTPValid": "1"]
Send an event name: Checkout_Success, controller = CheckoutViewController

安装

有三种方式安装DLAnalytics

CocoaPods

只需将以下内容添加到你的项目Podfile

pod 'DLAnalytics', '~> 2.0'

Carthage

将以下内容添加到Cartfile

github "lengocduy/DLAnalytics" ~> 2.0
  • 有关使用 Xcode 12 及以上版本构建平台独立 xcframework 的信息,请参阅此处
  • 有关从 framework bundles 迁移到 xcframework 的信息,请参阅此处

Swift 包管理器

创建一个Package.swift文件

// swift-tools-version:5.0

import PackageDescription

let package = Package(
        name: "TestDLAnalytics",

        dependencies: [
            .package(url: "https://github.com/lengocduy/DLAnalytics.git", from: "2.0.0"),
        ],

        targets: [
            .target(
                    name: "TestDLAnalytics",
                    dependencies: ["DLAnalytics"])
        ]
)

架构

Architecture

交互流程

Interaction Flow

许可协议

DLAnalytics遵循MIT许可协议。有关更多信息,请参阅LICENSE文件。