Surveillance des applications Swift (iOS/macOS) : bibliothèques et outils clés
Le développement moderne pour iOS et macOS nécessite non seulement la création de code fonctionnel, mais aussi un contrôle constant des performances, de la stabilité et du comportement de l'application dans des conditions réelles. La surveillance des applications Swift comprend la collecte de métriques, l'analyse des erreurs, le suivi des crashs, le profilage de la mémoire et du CPU, ainsi que la journalisation. Dans cet article, nous examinerons les principales bibliothèques et outils de surveillance des projets Swift qui vous aideront à maintenir une haute qualité d'application.
1. Firebase Crashlytics — leader des outils de suivi des crashs
Firebase Crashlytics est un outil puissant et gratuit pour collecter des informations sur les pannes d'applications. Il collecte automatiquement les piles d'appels, les journaux et les données utilisateur, permettant de trouver et de corriger rapidement les erreurs critiques.
Connexion via Swift Package Manager :
// Dans Xcode : File → Add Packages → rechercher "firebase-ios-sdk"// Ajouter le module : FirebaseCrashlyticsExemple de configuration dans AppDelegate :
import FirebaseCoreimport FirebaseCrashlytics
@mainclass AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() // La collecte automatique des crashs est activée par défaut return true }}Ajout de journaux personnalisés :
Crashlytics.crashlytics().log("L'utilisateur a cliqué sur le bouton 'Acheter'")Crashlytics.crashlytics().setUserID("user_12345")2. MetricsKit — collecte intégrée de métriques par Apple
Depuis iOS 13 et macOS 10.15, Apple a introduit MetricsKit — un framework pour la collecte de métriques de performance anonymes. Les données sont automatiquement envoyées à App Store Connect et sont accessibles au développeur dans la section « Analytique ».
Fonctionnalités principales :
- Collecte du temps de démarrage de l'application (Cold Start, Warm Start)
- Suivi de l'utilisation de la mémoire et du CPU
- Métriques de consommation d'énergie
- Statistiques sur les crashs et les blocages
Exemple d'activation de métriques personnalisées :
import MetricKit
class MetricsManager: NSObject, MXMetricManagerSubscriber { override init() { super.init() MXMetricManager.shared.add(self) } func didReceive(_ payloads: [MXMetricPayload]) { for payload in payloads { if let cpuMetrics = payload.cpuMetrics { print("CPU : \\(cpuMetrics.cumulativeCPUTime)") } } }}3. SwiftMetrics (IBM) — surveillance des applications Swift côté serveur
Si votre application utilise Swift côté serveur (par exemple, Vapor ou Kitura), SwiftMetrics d'IBM est un excellent choix pour surveiller les performances, les requêtes HTTP et les ressources système.
Installation via Package.swift :
// swift-tools-version:5.7dependencies: [ .package(url: "https://github.com/RuntimeTools/SwiftMetrics.git", from: "2.0.0")]Exemple d'initialisation :
import SwiftMetricsimport SwiftMetricsKitura
let sm = try SwiftMetrics()let monitoring = SwiftMetricsKitura(swiftMetricsInstance: sm)sm.monitor() // démarrage de la surveillanceLes métriques sont accessibles via l'API REST ou Prometheus.
4. Xcode Instruments — profilage au niveau de l'IDE
Xcode Instruments n'est pas une bibliothèque, mais un outil intégré pour un profilage approfondi. Il permet d'analyser :
- Les fuites mémoire (Leaks)
- L'utilisation du CPU (Time Profiler)
- Les requêtes réseau (Network)
- Le travail avec Core Data (Core Data)
- L'animation et le rendu (Core Animation)
Lancement