Primeiros passos com o Monitoramento de desempenho para plataformas para Apple

Antes de começar

Adicione o Firebase ao seu projeto da Apple caso ainda não tenha feito isso.

Etapa 1: adicionar o Performance Monitoring ao app

Depois que você adiciona o SDK do Performance Monitoring, o Firebase começa a coletar automaticamente dados sobre a renderização de tela do app, incluindo os dados relacionados ao ciclo de vida do app (como o horário de início do app) e os dados de solicitações de rede HTTP/S.

Use o Swift Package Manager para instalar e gerenciar as dependências do Firebase.

  1. No Xcode, com seu projeto do app aberto, navegue até File > Add Packages.
  2. Quando solicitado, adicione o repositório do SDK do Firebase para as plataformas Apple:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Escolha a biblioteca Performance Monitoring.
  5. Adicione a sinalização -ObjC à seção Outras sinalizações do vinculador das configurações de compilação do destino.
  6. Quando terminar, o Xcode vai começar a resolver e fazer o download das dependências em segundo plano automaticamente.

Em seguida, configure o módulo do Firebase:

  1. Importe o módulo FirebaseCore no UIApplicationDelegate, assim como qualquer outro módulo do Firebase usado pelo delegado do app. Por exemplo, para usar Cloud Firestore, Authentication e:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Configure uma instância compartilhada do FirebaseApp no método application(_:didFinishLaunchingWithOptions:) do delegado do app:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Se você estiver usando a SwiftUI, crie um delegado do aplicativo e o anexe ao struct App via UIApplicationDelegateAdaptor ou NSApplicationDelegateAdaptor. Também é necessário desativar o swizzling do delegado do app. Para mais informações, consulte as instruções da SwiftUI.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. Recompile o app.

Etapa 2: gerar eventos de desempenho para a exibição inicial de dados

O Firebase começa a processar os eventos quando você adiciona o SDK ao seu aplicativo. Se você ainda estiver desenvolvendo localmente, interaja com seu aplicativo para gerar eventos para coleta e processamento de dados iniciais.

  1. Continue desenvolvendo o app usando um simulador ou dispositivo de teste.

  2. Gere eventos alternando o plano de fundo e o primeiro plano do app várias vezes. Interaja com o app navegando pelas telas e/ou acionando solicitações de rede.

  3. Acesse o painel Desempenho do console do Firebase. Você verá sua exibição de dados inicial em alguns minutos.

    Se você não vir uma exibição dos seus dados iniciais, veja as dicas de solução de problemas.

Etapa 3: (opcional) ver se há eventos de desempenho nas mensagens de registro

  1. Ative a geração de registros de depuração da seguinte maneira:

    1. No Xcode (versão mínima 15.2), selecione Product > Scheme > Edit scheme.
    2. Selecione Run no menu à esquerda e depois a guia Arguments.
    3. Na seção Arguments Passed on Launch, adicione -FIRDebugEnabled.
  2. Verifique se há mensagens de erro nas mensagens de registro.

  3. O Performance Monitoring marca as mensagens de registro com Firebase/Performance para que seja possível filtrar as mensagens de registro.

  4. Verifique os seguintes tipos de registros que indicam que o Performance Monitoring está registrando eventos de desempenho:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. Clique no URL para ver seus dados no Console do Firebase. Pode levar alguns instantes até que os dados sejam atualizados no painel.

Se o app não estiver registrando eventos de desempenho, veja as dicas de solução de problemas.

Etapa 4 (opcional): adicionar monitoramento personalizado para código específico

Para monitorar os dados de desempenho associados a um código específico no app, instrumente traces de código personalizados.

Com um trace de código personalizado, é possível avaliar quanto tempo o app leva para concluir uma tarefa específica ou um conjunto de tarefas, como carregar um conjunto de imagens ou consultar seu banco de dados. A métrica padrão de um trace de código personalizado é a duração, mas também é possível adicionar métricas personalizadas, como ocorrências em cache e avisos de memória.

No seu código, você define o início e o fim de um trace de código personalizado (e adiciona a métrica personalizada que quiser) usando a API fornecida pelo SDK do Performance Monitoring.

Acesse Adicionar monitoramento para códigos específicos para saber mais sobre esses recursos e como adicioná-los ao seu app.

Etapa 5: implantar seu app e analisar os resultados

Depois de validar o Performance Monitoring usando o simulador Xcode e um ou mais dispositivos de teste, será possível implantar a versão atualizada do seu app para os usuários.

É possível monitorar os dados de desempenho no painel Desempenho do console do Firebase.

Problemas conhecidos

  • O Performance Monitoring tem problemas de compatibilidade conhecidos com o GTMSQLite. Recomendamos não usar o Performance Monitoring com apps que usam o GTMSQLite.
  • O swizzling de métodos após chamar FirebaseApp.configure() pode interferir no SDK do Performance Monitoring.
  • Problemas conhecidos no simulador do iOS 8.0 a 8.2 impedem o Performance Monitoring de capturar eventos de desempenho. Esses problemas são corrigidos no simulador de iOS 8.3 e versões posteriores.
  • As conexões estabelecidas usando o backgroundSessionConfiguration da NSURLSession terão tempos de conexão mais longos do que o esperado. Essas conexões são executadas fora do processo, e o tempo reflete os eventos de callback no processo.

Próximas etapas