مراقبة تطبيقات Swift: المقاييس والتنبيهات لنظامي iOS/macOS

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة: لماذا تعتبر المراقبة أمرًا حيويًا لتطبيقات Swift

تعمل تطبيقات Swift الحديثة لنظامي iOS وmacOS في بيئة شديدة التنافسية. يتوقع المستخدمون استجابة فورية وأداءً مستقرًا وخلوًا من الأعطال. بدون نظام مراقبة، فإنك تخاطر بمعرفة انهيار الخادم أو خطأ حرج فقط بعد شكاوى العملاء. في هذه المقالة، سنشرح كيفية تنظيم مراقبة فعالة لتطبيقات Swift: ما هي المقاييس التي يجب جمعها، وكيفية إعداد التنبيهات وأتمتة العمليات.



1. المقاييس الرئيسية لتطبيقات Swift

تبدأ المراقبة باختيار المقاييس الصحيحة. بالنسبة لتطبيقات iOS وmacOS، من المهم تتبع ثلاث مجموعات من المؤشرات.



1.1. الأداء وواجهة المستخدم

  • FPS (Frame Per Second) — معدل الإطارات. يشير الانخفاض إلى أقل من 30 FPS إلى مشاكل في الرسوم المتحركة أو العرض.
  • وقت التشغيل — بدء التشغيل البارد والساخن. يُقاس من بداية التحميل حتى أول إطار.
  • استهلاك الذاكرة — تتبع التسريبات باستخدام Instruments أو مقاييس Xcode المدمجة.


import MetricKit

class PerformanceMonitor: NSObject, MXMetricManagerSubscriber { override init() { super.init() MXMetricManager.shared.add(self) } func didReceive(_ payloads: [MXMetricPayload]) { for payload in payloads { if let fpsData = payload.applicationLaunchMetrics { print("متوسط FPS: \\(fpsData.histogrammedApplicationResumeTime)") } } }}


1.2. طلبات الشبكة وAPI

  • وقت استجابة الخادم (latency).
  • رموز الأخطاء (4xx, 5xx).
  • عدد الطلبات الناجحة/الفاشلة.


import Foundation

class NetworkMonitor { static func trackRequest(_ url: URL, duration: TimeInterval, statusCode: Int) { let metrics: [String: Any] = [ "url": url.absoluteString, "duration_ms": duration * 1000, "status": statusCode ] // إرسال إلى التحليلات AnalyticsService.sendEvent("network_request", parameters: metrics) }}


1.3. الأعطال والأخطاء

استخدم Crashlytics (Firebase) أو معالجًا مخصصًا. من المهم تسجيل ليس فقط الأخطاء الفادحة ولكن أيضًا الأخطاء القابلة للاسترداد.



import Crashlytics

class CrashHandler { static func logError(_ error: Error, context: String) { Crashlytics.crashlytics().record(error: error, userInfo: ["context": context]) }}


2. أدوات جمع المقاييس

يعتمد اختيار الأداة على حجم المشروع. دعنا نستعرض ثلاثة خيارات شائعة.



2.1. Firebase Crashlytics + Performance

أداة مجانية من Google. تتيح تتبع الأعطال وطلبات الشبكة والمقاييس المخصصة. التكامل عبر Swift Package Manager.



// قم بالتثبيت عبر SPM: firebase-ios-sdkimport FirebasePerformance

class PerformanceTracer { static func startTrace(name: String) -> Trace { let trace = Performance.startTrace(name: name) return trace } static func stopTrace(_ trace: Trace) { trace.stop() }}


2.2. Sentry

نظام متقدم مع دعم التتبع الموزع. مناسب للحلول المؤسسية.



import Sentry

SentrySDK.start { options in options.dsn = "https://examplePublicKey@o0.ingest.sentry.io/0" options.tracesSampleRate = 1.0 // تتبع بنسبة 100%}

// التقاط خطأ يدويًاSentrySDK.capture(error: NSError(domain: "com.example", code: 404))


2.3. New Relic

أداة قوية لمراقبة الأداء في الوقت الفعلي. تدعم SwiftUI وUIKit.



// التكامل عبر CocoaPods: pod 'NewRelicAgent'import NewRelic

NewRelic.start(w

المدونات

توصيات الكتب