Surveillance des applications Swift : métriques et alertes pour iOS/macOS

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Pourquoi la surveillance est essentielle pour les applications Swift

Les applications modernes en Swift pour iOS et macOS évoluent dans un environnement hautement concurrentiel. Les utilisateurs s'attendent à des réponses instantanées, un fonctionnement stable et l'absence de pannes. Sans système de surveillance, vous risquez de découvrir une panne de serveur ou une erreur critique seulement après les plaintes des clients. Dans cet article, nous allons voir comment organiser une surveillance efficace des applications Swift : quelles métriques collecter, comment configurer des alertes et automatiser les processus.



1. Métriques clés pour les applications Swift

La surveillance commence par le choix des bonnes métriques. Pour les applications iOS et macOS, il est important de suivre trois groupes d'indicateurs.



1.1. Performance et UI

  • FPS (Frame Per Second) — le taux d'images par seconde. Une chute en dessous de 30 FPS signale des problèmes d'animation ou de rendu.
  • Temps de démarrage — démarrage à froid et à chaud. Mesuré du début du chargement jusqu'à la première image.
  • Consommation mémoire — surveillez les fuites via Instruments ou les métriques intégrées de 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 moyen : \\(fpsData.histogrammedApplicationResumeTime)") } } }}


1.2. Requêtes réseau et API

  • Temps de réponse du serveur (latence).
  • Codes d'erreur (4xx, 5xx).
  • Nombre de requêtes réussies/échouées.


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 ] // Envoi à l'analytique AnalyticsService.sendEvent("network_request", parameters: metrics) }}


1.3. Crashes et erreurs

Utilisez Crashlytics (Firebase) ou votre propre gestionnaire. Il est important de capturer non seulement les erreurs fatales, mais aussi les erreurs récupérables (recoverable errors).



import Crashlytics

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


2. Outils pour la collecte de métriques

Le choix de l'outil dépend de l'échelle du projet. Examinons trois options populaires.



2.1. Firebase Crashlytics + Performance

Outil gratuit de Google. Permet de suivre les crashes, les requêtes réseau et les métriques personnalisées. Intégration via Swift Package Manager.



// Installez via 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

Système avancé avec prise en charge du traçage distribué. Convient aux solutions d'entreprise (enterprise).



import Sentry

SentrySDK.start { options in options.dsn = "https://examplePublicKey@o0.ingest.sentry.io/0" options.tracesSampleRate = 1.0 // 100% de traçage}

// Capture manuelle d'erreurSentrySDK.capture(error: NSError(domain: "com.example", code: 404))


2.3. New Relic

Outil puissant pour la surveillance des performances en temps réel. Prend en charge SwiftUI et UIKit.



// Intégration via CocoaPods : pod 'NewRelicAgent'import NewRelic

NewRelic.start(w

Blogs

Book Recommendations