Monitoramento de aplicações Swift: métricas e alertas para iOS/macOS

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que o monitoramento é crítico para aplicativos Swift

Aplicativos modernos em Swift para iOS e macOS operam em um ambiente altamente competitivo. Os usuários esperam resposta instantânea, operação estável e ausência de falhas. Sem um sistema de monitoramento, você corre o risco de descobrir uma queda de servidor ou erro crítico somente após reclamações de clientes. Neste artigo, vamos analisar como organizar um monitoramento eficaz de aplicativos Swift: quais métricas coletar, como configurar alertas e automatizar processos.



1. Métricas-chave para aplicativos Swift

O monitoramento começa com a escolha das métricas corretas. Para aplicativos iOS e macOS, é importante rastrear três grupos de indicadores.



1.1. Performance e UI

  • FPS (Frames Per Second) — taxa de quadros. Queda abaixo de 30 FPS sinaliza problemas com animação ou renderização.
  • Tempo de inicialização — inicialização a frio e a quente. Medido do início do carregamento até o primeiro quadro.
  • Consumo de memória — monitore vazamentos através do Instruments ou métricas integradas do 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 médio: \\(fpsData.histogrammedApplicationResumeTime)") } } }}


1.2. Requisições de rede e API

  • Tempo de resposta do servidor (latência).
  • Códigos de erro (4xx, 5xx).
  • Número de requisições bem-sucedidas/malsucedidas.


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 ] // Envio para análise AnalyticsService.sendEvent("network_request", parameters: metrics) }}


1.3. Crashes e erros

Use o Crashlytics (Firebase) ou um manipulador próprio. É importante registrar não apenas erros fatais, mas também erros recuperáveis.



import Crashlytics

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


2. Ferramentas para coleta de métricas

A escolha da ferramenta depende da escala do projeto. Vamos considerar três opções populares.



2.1. Firebase Crashlytics + Performance

Ferramenta gratuita do Google. Permite rastrear crashes, requisições de rede e métricas personalizadas. Integração via Swift Package Manager.



// Instale 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

Sistema avançado com suporte a rastreamento distribuído. Adequado para soluções enterprise.



import Sentry

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

// Captura manual de erroSentrySDK.capture(error: NSError(domain: "com.example", code: 404))


2.3. New Relic

Ferramenta poderosa para monitoramento de performance em tempo real. Suporta SwiftUI e UIKit.



// Integração via CocoaPods: pod 'NewRelicAgent'import NewRelic

NewRelic.start(w

Blogs

Book Recommendations