Table of Contents
Começando com a Depuração de Nativos Reagindo
Reagir Nativo tornou-se uma das estruturas mais adotadas para a construção de aplicativos móveis multiplataforma, alavancando JavaScript e Reagir para oferecer experiências nativas. A depuração é uma habilidade essencial que afeta diretamente a velocidade de desenvolvimento e a qualidade do aplicativo. Se você é um desenvolvedor recém-chegado ou experiente, entender o ecossistema de depuração disponível no Reagir Nativo irá ajudá-lo a identificar problemas mais rápido, reduzir o tempo gasto na reprodução de bugs e enviar código mais confiável. Este artigo fornece uma análise detalhada das ferramentas e técnicas de depuração essenciais, desde as ferramentas de desenvolvimento do Chrome integradas até plataformas avançadas como o Flipper e o React Native Debugger.
Antes de mergulhar em ferramentas específicas, ajuda a configurar o seu ambiente de desenvolvimento para uma depuração ideal. Certifique-se de que você tem a versão mais recente do React Native instalado, uma vez que as versões mais recentes incluem melhorias de depuração e depreciações de métodos desatualizados. Para iOS, usar um dispositivo real com uma conexão USB pode revelar problemas que os simuladores obscurecem, enquanto o emulador do Android oferece recursos de depuração ricos através do registro do ADB. Familiarize-se com o Menu Reagir Desenvolvedor Nativo, acessível a partir de um dispositivo físico ou pressionando ]Cmd+D[ (iOS simulador) ou Cmd+M[ (emulador Android). Este menu é o gatewayway para a maioria das opções de depuração.
Ferramentas de desenvolvimento do Chrome: O Cavalo de Trabalho de Depuração Clássico
As Ferramentas de Desenvolvimento do Chrome (DevTools) têm sido um grampo na depuração React Native desde os primeiros dias da plataforma. Quando você habilita a depuração do Menu Desenvolvedor, o código JavaScript da aplicação é executado dentro do Chrome, permitindo que você use o conjunto completo de recursos do DevTools. Este método funciona estabelecendo uma conexão WebSocket entre o aplicativo React Native e o Chrome, para que você possa inspecionar elementos, definir pontos de interrupção, monitorar solicitações de rede e depurar JavaScript em tempo real.
Habilitando DevTools Chrome no Reagir Nativo
Para iniciar a depuração com o Chrome DevTools:
- Abra o aplicativo React Native em um emulador ou dispositivo físico.
- Abra o menu Desenvolvedor agitando o dispositivo ou pressionando Cmd+D (iOS) / Cmd+M[ (Android).
- Selecione "Depurar" (ou "Depurar JS Remotamente" em versões mais antigas). Uma nova guia Chrome irá abrir com a interface DevTools.
- No Chrome, pressione Cmd+Option+I (Mac) ou Ctrl+Shift+I (Windows/Linux) para abrir DevTools se não aparecer automaticamente.
Uma vez conectado, você pode usar os seguintes painéis de forma eficaz:
- Elementos: Embora não tão rico quanto ferramentas de inspetor nativas, o painel Elementos mostra uma árvore DOM simplificada de suas visões nativas de Reagir. Você pode editar estilos em linha para testar alterações de layout.
- Console: Ver logs de , e . A consola também avalia expressões JavaScript no contexto da sua aplicação.
- Fontes: Defina pontos de interrupção, passe por código e inspecione pilhas de chamadas. Esta é a característica mais poderosa para erros de depuração de lógica.
- Network: Monitore solicitações HTTP e WebSocket feitas pelo seu aplicativo. Útil para verificar chamadas de API e dados de resposta.
- Performance: Gravar e analisar o desempenho em tempo de execução, incluindo FPS, uso de memória e tempo de execução do JavaScript.
No entanto, tenha em mente que a depuração do Chrome DevTools introduz uma ligeira sobrecarga porque o JavaScript roda no motor V8 do Chrome em vez de no motor JavaScript nativo (Hermes ou JSC). Isto significa que alguns erros que aparecem apenas no motor nativo não podem reproduzir-se no Chrome. Para problemas críticos, verifique sempre num dispositivo real com depuração nativa activada.
Reagir o Depurador Nativo: Redox Integrado e Reagir DevTools
Reagir o Depurador Nativo é uma aplicação de ecrã independente que reúne React DevTools e Redux DevTools numa única interface amigável ao programador. Elimina a necessidade de alternar entre diferentes ferramentas e fornece uma visão unificada das árvores de componentes, alterações de estado e acções Redux. Esta ferramenta é especialmente benéfica para projectos que usam o Redux para gestão de estado, uma vez que oferece depuração de viagens no tempo e diferenças de estado fora da caixa.
Configurar o Depurador Nativo de Reagir
Para usar o Depurador Nativo de Reacções:
- Baixe a última versão do repositório oficial do GitHub e instale-o em sua máquina.
- Execute o aplicativo React Native Debugger antes de iniciar seu aplicativo React Native. Ele irá ouvir automaticamente na porta 8081 (ou na porta padrão do Metro).
- Abra o menu Desenvolvedor da sua aplicação e selecione "Debug" ou, se você tiver um depurador personalizado configurado, "Debug with React Native Debugger." O aplicativo irá se conectar à janela do depurador.
- A interface combina um painel esquerdo para React DevTools (árvore de componentes) e um painel direito para Redux DevTools (registro de ação, inspetor de estado).
Além dos DevTools duplos, o React Native Debugger também inclui um console integrado, inspetor de rede e inspetor de elementos semelhantes ao Chrome DevTools. Ele suporta pontos de interrupção e variáveis de observação, tornando-o um ambiente de depuração abrangente. Como ele executa o JavaScript no motor V8 da Electron, ele compartilha a mesma limitação que o Chrome DevTools para problemas específicos do Hermes.
Quando usar o depurador nativo Reagir sobre os DevTools Chrome
Se o seu projeto depende fortemente do Redux ou do MobX, as ferramentas integradas de gerenciamento de estado do React Native Debugger são um modificador de jogo. Você pode repetir ações, inspecionar diferenças de estado e exportar estado em qualquer ponto. Para desenvolvedores que preferem uma janela separada dedicada exclusivamente à depuração sem distrações de outras guias do Chrome, esta ferramenta oferece um fluxo de trabalho mais limpo.
Flipper: A Plataforma de Depuração Nativa de Reagir Oficial
O Flipper é uma plataforma de código aberto desenvolvida pelo Meta (anteriormente Facebook) para depuração de aplicativos móveis. Foi adotada como a ferramenta padrão de depuração para React Native na versão 0.62 e fornece um ecossistema de plugins rico. O Flipper é executado nativamente ao lado de aplicativos iOS e Android, oferecendo recursos como inspeção de layout, registro de rede, relatórios de falhas e navegação de banco de dados. Ao contrário do Chrome DevTools, o Flipper se conecta ao motor JavaScript que está rodando no dispositivo (Hermes ou JSC), por isso ele relata erros que ocorrem no ambiente nativo com mais precisão.
Instalando e Configurando o Flipper
Para configurar o Flipper para o seu projeto React Native:
- Baixar Flipper do site oficial Flipper .
- Certifique-se de que sua versão nativa React é 0.62 ou posterior (ou adicione manualmente dependências do Flipper ao seu projeto). Para novos projetos criados com , o Flipper está incluído por padrão.
- Execute seu aplicativo em um emulador ou dispositivo. Flipper deve detectar automaticamente o aplicativo assim que ele começar. Em alguns emuladores Android, você pode precisar executar para permitir a comunicação.
- Se o Flipper não se ligar, verifique se o pacote está ligado no seu e .
Plug- ins de teclado para Reagir nativo
- Layout Inspector: Clique em qualquer elemento de interface do dispositivo para ver o nome do componente, estilos, hierarquia pai-filho e coordenadas absolutas. Isto é muito mais poderoso do que o painel Elementos do Chrome porque funciona com visualizações nativas.
- Plugin de rede: Ver todas as solicitações de rede feitas pelo seu aplicativo, incluindo cabeçalhos, cargas úteis e tempo. Você pode filtrar, pesquisar e replay requests. Este plugin também mostra solicitações e códigos de erro falhou.
- Plugin de logs: Centraliza , logcat Android e entradas iOS NSLog. Os logs são codificados por cores pelo nível de log e podem ser filtrados por tag.
- Plugin de Relatórios de Lixo: Captura falhas nativas e traços de pilha JavaScript, fornecendo uma linha do tempo de eventos que levam ao acidente.
- Hermes Debugger Plugin: Se você usar o Hermes como seu motor JavaScript, este plugin permite a depuração com pontos de interrupção, step-over e inspeção variável diretamente no dispositivo. Esta é a maneira mais confiável de depurar problemas específicos do Hermes.
- Plugin de banco de dados: Navegue e edite bancos de dados SQLite que seu aplicativo usa durante o desenvolvimento, facilitando a verificação da persistência dos dados.
A arquitetura de plugins do Flipper também permite plugins personalizados. As equipes frequentemente criam plugins para visualizar o estado interno do aplicativo, respostas de servidor simuladas ou eventos de análise de log. Esta flexibilidade torna o Flipper a ferramenta de depuração mais à prova de futuro no ecossistema Nativo Reagir.
Perfil de desempenho e depuração de memória
Além de corrigir erros de lógica, problemas de desempenho de depuração é fundamental para entregar uma experiência de usuário suave. Reagir Nativo fornece várias maneiras de perfilar o desempenho de seu aplicativo.
Usando o monitor de desempenho nativo de reação
O Menu Desenvolvedor inclui uma opção "Mostrar Monitor Perf" que sobrepõe um pequeno gráfico em cima de sua aplicação. Ele exibe:
- FPS: Quadros por segundo. Uma experiência suave deve manter 60 FPS (ou 90/120 em dispositivos de alta taxa de atualização).
- JS FPS: A taxa de quadros do tópico JavaScript. Se isso cair, seu código JavaScript pode estar bloqueando o tópico principal.
- RAM Uso: Consumo aproximado de memória do aplicativo.
- Ver contagem: O número de visualizações nativas atualmente montadas.
Use este monitor como um primeiro indicador de que algo está errado, em seguida, use mais ferramentas granulares para identificar a causa.
Perfil com Chrome DevTools Tab Desempenho
Ao depurar remotamente com o Chrome DevTools, a aba Desempenho pode gravar uma linha do tempo de sua execução JavaScript, incluindo chamadas de função, layouts e eventos de pintura. Para perfilar:
- Abra o Chrome DevTools conectado ao seu aplicativo.
- Vá para a guia Desempenho e clique no botão gravar.
- Interaja com seu aplicativo para reproduzir o problema de desempenho.
- Pare de gravar e analisar o gráfico de chama. Procure funções de longo prazo, layouts frequentes ou re-renders excessivos.
No entanto, porque o JavaScript é executado no Chrome, os números de desempenho (especialmente memória) podem diferir do dispositivo real. Para perfil tipo produção, use o plugin Performance do Flipper ou as ferramentas de desempenho nativas de Reagir autônomas como .
Depuração de Memória com Xcode e Android Studio
Para vazamentos de memória nativa, use ferramentas específicas da plataforma:
- Xcode Instruments (iOS): Execute seu aplicativo no Xcode, então use os instrumentos Leaks e Alocaçãos para detectar objetos retidos e crescimento de memória.
- Android Studio Profiler (Android): Abra a aba Perfil ao executar seu aplicativo em um emulador ou dispositivo. Ele mostra memória, CPU e uso de rede em tempo real.
Essas ferramentas são indispensáveis quando os problemas de depuração que só aparecem após o uso prolongado do aplicativo, como vazamentos de memória de ouvintes não removidos ou componentes desmontados.
Cenários e soluções comuns de depuração
Mesmo com ferramentas poderosas, saber como abordar problemas específicos acelera a resolução. Aqui estão alguns problemas frequentes encontrados durante o desenvolvimento React Native e como depura-los.
Erros de "Não é possível resolver o módulo"
Isto ocorre frequentemente quando um pacote está faltando ou há uma versão descompasso. Verifique o seu e certifique-se de que você executou ou . Se o módulo é um arquivo local, verifique novamente o caminho de importação. Use a mensagem de erro do Metro para ver qual arquivo está falhando. Você também pode limpar a cache Metro com ].
Tela em branco no lançamento da aplicação
Uma tela em branco indica normalmente um erro JavaScript durante a inicialização. Com o Chrome DevTools ou Reagir o Depurador Nativo, abra o painel Console para ver a mensagem de erro. As causas comuns incluem erros de sintaxe, falta , ou ligação incorreta de módulo nativo. Se o erro for nativo (por exemplo, um Pod em falta), o console do dispositivo ou o plug- in de Registros do Flipper mostrarão os detalhes.
Estado não atualizando conforme esperado
Os problemas de gestão do estado podem ser complicados. Use React DevTools (tanto no React Native Debugger como no Chrome DevTools com a extensão de ferramentas de desenvolvimento React) para inspecionar a árvore de componentes e verificar o estado atual e os adereços. Para os aplicativos Redux, abra o painel Redux DevTools e compare a ação enviada com o diff de estado esperado. Defina pontos de interrupção dentro dos redutores para verificar se as ações produzem as transições corretas de estado.
Desempenho de Rolo Lento
Os problemas de desempenho do rolo geralmente surgem de re-render excessivas ou de listas grandes. Verifique o Monitor de Desempenho Nativo de Reagir para quedas de FPS. Em seguida, perfil com o Chrome DevTools para ver quais componentes re-render frequentemente. Use , , ou para evitar atualizações desnecessárias. Para listas grandes, use com [ ou mude para para melhor desempenho.
Integrando Depuração em Seu fluxo de trabalho de desenvolvimento
Ferramentas de depuração são mais eficazes quando usadas de forma consistente ao longo do ciclo de desenvolvimento, não apenas quando um bug aparece. Aqui estão as práticas para incorporar depuração em seu fluxo de trabalho diário.
Configurar o Tratamento Automático de Erros
Use limites de erro em seus componentes Reagir para capturar erros JavaScript graciosamente e registre-os em um sistema como Sentry ou Bugsnag. Durante o desenvolvimento, você pode redirecionar esses logs para o Flipper ou o console para que você pegue problemas precocemente.
Gravar o Código Testável e Depurado
Quebre o seu código em funções e componentes pequenos e puros. Isto torna mais fácil isolar erros e escrever testes unitários. Quando ocorre um problema, você pode reproduzi- lo rapidamente em um ambiente de teste sem que o aplicativo completo esteja rodando. Ferramentas como a Biblioteca de Testes Nativos de Jest e React complementam seus esforços de depuração, capturando regressões antes que eles atinjam a produção.
Usar o recarga quente e a atualização rápida
Reagir o React Fast Refresh do Native (apto por padrão em versões recentes) permite que você veja as alterações instantaneamente sem perder o estado do aplicativo. No entanto, ele pode ocultar problemas que ocorrem apenas em um novo lançamento do aplicativo. Ao depurar erros de estado iniciais, desabilitar o Fast Refresh temporariamente, editando seu código após um reload completo.
Teste Automático de Vantagem com Depuração
Combine depuração com testes automatizados usando ferramentas como Detox ou Appium para testes de ponta a ponta. Quando um teste de e2e falhar, use a ferramenta de captura de tela do Flipper para capturar o estado de UI no momento da falha, ou integre-se ao Flipper para pausar as falhas de teste para inspeção manual.
Depuração de Integração Contínua
Em pipelines CI/CD, a depuração pode ser desafiadora porque não há interface interativa. Use os comandos e para transmitir logs, ou capturar registros Flipper programáticamente usando o Flipper SDK. Configure seu CI para armazenar registros de falhas e capturas de tela como artefatos para análise pós-construção.
Provando o futuro da sua configuração de depuração
O ecossistema React Native evolui rapidamente e as ferramentas de depuração seguem o exemplo. Hermes, o motor JavaScript otimizado para React Native, é agora o padrão para novos projetos. O plugin Hermes Debugger do Flipper está constantemente melhorando, e a equipe do Flipper está adicionando recursos como importação de banco de dados e zombagem de pedidos de rede. Enquanto isso, a ferramenta React DevTools standalone está sendo desprecada em favor do plug-in React DevTools integrado do Flipper.
Fique de olho no site oficial Reagir documentação de depuração nativa para atualizações. Além disso, verifique o site Flipper para novos plugins e melhorias. À medida que a comunidade cresce, bibliotecas de terceiros como continuam a simplificar o processo de configuração.
Ao dominar ferramentas como Chrome DevTools, Reagir Depurador Nativo e Flipper, e ao adotar uma mentalidade proativa de depuração, você pode encurtar dramaticamente seus ciclos de desenvolvimento e produzir aplicativos nativos de Reagir mais robustos. A depuração não é apenas sobre corrigir bugs – é uma prática essencial que aguça sua compreensão do framework e leva a código mais limpo e mantenível. Comece a integrar essas ferramentas em seu fluxo de trabalho hoje, e você verá melhorias imediatas tanto na velocidade quanto na qualidade.