آنالیتیکس و گزارش گیری (Analytics & Reporting)
آنالیتیکس یعنی شمردن رفتار کاربر. گزارش گیری یعنی ثبت پایداری و خطا. داده را مسئولانه جمع کن. سپس با ابزارها عیب ها را پیدا کن. مثل کارنامه مدرسه است، اما برای اپ.
Xcode Organizer
بعد از انتشار، لاگ های کرش و سنجه ها اینجاست. نمودارها را ببین و نسخه ها را مقایسه کن. سپس مشکل های پرتکرار را اولویت بده.
افزودن SDK آنالیتیکس
SDK یعنی جعبه ابزار آماده. با SPM یا CocoaPods اضافه کن. سپس کلید را مقدار بده.
نمونه: Package.swift (نمایشی)
// Example: Add an analytics package
// .package(url: "https://github.com/acme/analytics-sdk", from: "1.0.0")
import SwiftUI
// import AnalyticsSDK
@main
struct MyApp: App {
init() {
// AnalyticsSDK.start(apiKey: "YOUR_KEY")
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
نکته: حریم خصوصی را رعایت کن و نوع داده ها را افشا کن.
لاگ گذاری ساخت یافته (os.Logger)
لاگ گذاری یعنی نوشتن رد اتفاق ها. با ساختار مناسب، عیب ها سریع تر پیدا می شوند.
نمونه: Logger.swift
import os
let logger = Logger(subsystem: "com.example.app", category: "network")
func fetch() async {
logger.info("Starting fetch...")
do {
// ... network call ...
logger.debug("Response status: \(200)")
} catch {
logger.error("Fetch failed: \(error.localizedDescription)")
}
}
رویدادها با رضایت کاربر
رویداد یعنی اتفاق مهم، مثل «کلیک خرید». فقط داده لازم را بفرست. بدون رضایت جمع نکن.
نمونه: EventTracker ساده
import Foundation
struct Event: Codable {
let name: String
let props: [String: String]
}
class EventTracker {
var consentGiven = false
func identify(userId: String?) {
// store hashed or anonymous ID
}
func track(_ event: Event) {
guard consentGiven else {
return
}
// enqueue and batch to your endpoint
}
}
گزینه های گزارش کرش
- Organizer: جمع آوری کرش و سنجه ها برای بیلد فروشگاه.
- SDK ثالث: هشدار لحظه ای و زمینه کاربر.
- dSYM: برای نمادگذاری درست، حتماً بارگذاری شود.
نکته: dSYM را خودکار آپلود کن تا استک ترِیس خوانا شود.
سنجه های عملکرد و Signpost
Signpost یعنی برچسب زمانی برای کارها. سپس در Instruments تحلیل کن.
نمونه: Signposts.swift
import os
let signposter = OSSignposter()
func loadFeed() async {
let id = signposter.makeSignpostID()
let state = signposter.beginInterval("load_feed", id: id)
// ... perform work ...
signposter.endInterval("load_feed", state)
}
گام های عملی سریع
- 1) Organizer را فعال بررسی کن.
- 2) SDK آنالیتیکس را اضافه کن.
- 3) لاگ ساخت یافته بنویس.
- 4) رویدادها را با رضایت ذخیره کن.
- 5) dSYM و نمادگذاری را خودکار کن.
جمع بندی سریع
- آنالیتیکس اپ باید مسئولانه باشد.
- Organizer منبع اصلی کرش هاست.
- لاگ خوب، اشکال را سریع می یابد.
- رضایت کاربر همیشه ضروری است.
مطالب مرتبط: حریم خصوصی اپ، دسترس پذیری، آنالیتیکس اپ.