Melhores Práticas do Expo CLI
Um resumo condensado das 25 melhores práticas mais importantes, extraídas de todas as páginas desta seção.
Busque em todas as páginas da documentação
Um resumo condensado das 25 melhores práticas mais importantes, extraídas de todas as páginas desta seção.
Inicie o Metro com npx expo start: Use a entrada do Expo CLI - react-native start puro ignora o middleware específico do Expo e as integrações do doctor.
Por padrão, use LAN em Wi-Fi compartilhado: Iteração mais rápida para telefone + laptop na mesma rede - o tunnel adiciona latência e dependências externas.
Use o tunnel apenas quando bloqueado: VPNs corporativas e isolamento de Wi-Fi de convidados precisam de --tunnel - documente a expectativa de recarga mais lenta para a equipe.
Use --clear quando os bundles parecerem desatualizados: Suspeite de "fantasmas" do Fast Refresh ou arquivos de entrada errados - limpar o cache é mais barato do que longas horas em labirintos de depuração.
Padronize scripts npm: start, start:tunnel, ios, android - o onboarding não deve exigir a memorização de combinações de flags.
Abra o Simulador iOS com i no terminal: Mais rápido do que alternar para o Xcode para trabalho diário de UI - mantenha um simulador ativo durante o desenvolvimento de recursos.
Escolha um nível de API Android realista: Corresponda à orientação do RN 0.86 (imagens de API recentes) - emuladores antigos escondem regressões de tela inteira e permissões.
Tire snapshots de simuladores em capturas de tela de CI: xcrun simctl e adb exec-out screencap - a regressão visual não precisa de dispositivos físicos para cada PR.
Teste em um dispositivo físico, no mínimo, semanalmente: Simuladores perdem câmera, push, haptics e performance - builds internas do EAS ou via USB fecham a lacuna.
Use expo run:ios --device para iteração nativa: Builds de desenvolvimento em hardware superam o Expo Go assim que o código nativo personalizado é enviado.
Emparelhe o USB Android com adb reverse quando necessário: Fluxos de trabalho de Metro localhost no dispositivo precisam de encaminhamento de porta reverso - documente o comando no README.
Adote o expo-dev-client cedo: Instale antes do primeiro módulo nativo - o Expo Go não pode carregar dependências nativas arbitrárias.
Inicie o dev client com npx expo start --dev-client: O launcher espera o esquema personalizado - misturar flags do Expo Go causa erros de conexão confusos.
Recompile o dev client em atualizações do SDK: OTA não pode alterar shells nativos - agende eas build --profile development na lista de verificação de atualização.
Registre itens de menu de desenvolvimento personalizados com moderação: registerDevMenuItems para flags de recursos e badges de ambiente - não dez entradas que ninguém lembra.
Abra o React Native DevTools com j: A depuração do Hermes vive no DevTools - a depuração remota no Chrome não é suportada no RN moderno.
Use o painel Components para bugs de layout: Selecionar no dispositivo supera as suposições de layout do console.log - inspecione props e arrays de estilo ao vivo.
Emule claro/escuro no DevTools no RN 0.86: A emulação de mídia da Paleta de Comandos captura bugs de tema sem alterar as configurações do sistema constantemente.
Trate o Flipper como legado: Use DevTools + IDEs de plataforma por padrão - não adicione Flipper a novos aplicativos Expo SDK 57 sem uma lacuna concreta.
Use Xcode e Android Studio para crashes nativos: Ferramentas de depuração JS não substituem traces de pilha nativos - abra a IDE nativa quando o redbox for do lado nativo.
Confie no Fast Refresh, não no Hot Reload: Hot Reload foi removido - se o estado parecer incorreto após a edição, verifique exports padrão/nomeados mistos quebrando os limites de refresh.
Marque arquivos com // @refresh reset quando necessário: Módulos com estado que precisam ser remontados devem optar por não serem preservados - documente o motivo no comentário.
Espere que useEffect seja reexecutado após o refresh: Não lute contra o re-fetch no refresh - efeitos idempotentes ou proteja com refs quando a duplicação prejudicar.
Depuração sem fio após o emparelhamento USB funcionar: Emparelhamento adb pair do Android / emparelhamento de rede Xcode do iOS - verifique uma vez por dispositivo, depois remova o cabo para testes na mesa.
Distribuição interna para QA fora da engenharia: Builds preview do EAS para PM e design - o Expo Go não é um substituto para o comportamento nativo de produção.
@refresh reset.r) é a saída de emergência - não um hábito diário.Versões da Stack: Esta página foi escrita para React 19.2.3, React Native 0.86.0 e Expo SDK 57 (
expo~57.0.4).
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026