Hoje estamos animados em anunciar o lançamento do React Native 0.84!
Nesta versão, o Hermes V1 se torna o motor JavaScript padrão para todas as aplicações React Native, trazendo melhorias significativas de desempenho. Continuamos removendo a Arquitetura Legada em ambos os sistemas iOS e Android, além de fornecer binários pré-compilados por padrão no iOS.
Hermes V1 como Padrão
O Hermes V1 agora é o motor JavaScript padrão para React Native em ambas as plataformas iOS e Android, após a introdução experimental inicial na versão 0.82 do React Native.
O Hermes V1 representa a próxima evolução do motor Hermes, com melhorias significativas tanto no compilador quanto na máquina virtual que entregam desempenho de JavaScript mensuravelmente superior.
Significado para sua Aplicação
- Ganhos de desempenho automáticos: Todas as aplicações usarão o Hermes V1 por padrão, trazendo uma velocidade de execução melhorada e uso reduzido de memória.
- Nenhuma migração necessária: Se você já está usando o Hermes (padrão desde 0.70), receberá automaticamente o Hermes V1. Nenhuma alteração na configuração é necessária.
Opcionalmente desativar o Hermes V1
- Gerenciador de pacotes override:
Força a instalação do pacote legado
hermes-compilerno seu arquivopackage.json:
{
"overrides": {
"hermes-compiler": "0.15.0"
}
}
{
"resolutions": {
"hermes-compiler": "0.15.0"
}
}
{
"pnpm": {
"overrides": {
"hermes-compiler": "0.15.0"
}
}
}
RCT_HERMES_V1_ENABLED=0 e RCT_USE_PREBUILT_RNCORE=0.hermesV1Enabled=false dentro do arquivo android/gradle.properties, e configure o aplicativo para construir o React Native a partir da fonte.Binários Pré-compilados no iOS por Padrão
O React Native 0.84 agora envia binários pré-compilados no iOS por padrão. Anteriormente introduzidos como uma opção de configuração, os binários pré-compilados estão agora habilitados por padrão, reduzindo significativamente o tempo de construção para aplicações iOS.
Isso significa que você não precisa mais compilar a parte principal do React Native a partir da fonte toda vez que faz uma limpeza e recompilação. Os binários pré-compilados .xcframework são automaticamente baixados e usados durante o processo de instalação dos pods.
Caso precise construir o React Native a partir da fonte (por exemplo, para optar por fora do Hermes V1), você pode desabilitar os binários pré-compilados definindo RCT_USE_PREBUILT_RNCORE=0 ao instalar pods.
Códigos de Componentes da Arquitetura Legada Removidos
A partir do trabalho iniciado na versão 0.82 (que tornou a Nova Arquitetura a única opção de tempo de execução), o React Native 0.84 continua removendo códigos da Arquitetura Legada em ambos os sistemas iOS e Android.
iOS
Na versão 0.83, introduzimos a flag experimental RCT_REMOVE_LEGACY_ARCH para compilar fora do código da Arquitetura Legada. Na versão 0.84, isso é agora o comportamento padrão — códigos da Arquitetura Legada não são mais incluídos em suas builds iOS, reduzindo tanto o tempo de construção quanto o tamanho do aplicativo.
Nenhuma quebra está esperada para aplicações já na Nova Arquitetura — o código da camada Interop necessária para compatibilidade permanece no lugar.
Reativar códigos da Arquitetura Legada em iOS
- Caso precise reativar os códigos da Arquitetura Legada nas builds iOS, você precisará construir a partir da fonte. Instale as dependências do CocoaPods com as seguintes flags:
RCT_USE_PREBUILT_RNCORE=0 RCT_REMOVE_LEGACY_ARCH=0 bundle exec pod install
Android
- Códigos de classes da Arquitetura Legada removidos As seguintes classes foram removidas nesta versão:
com.facebook.react.LazyReactPackage
com.facebook.react.bridge.CxxModuleWrapper
com.facebook.react.bridge.CxxModuleWrapperBase
com.facebook.react.bridge.CallbackImpl
com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener
com.facebook.react.bridge.OnBatchCompleteListener
com.facebook.react.bridge.ReactCxxErrorHandler
com.facebook.react.bridge.ReactInstanceManagerInspectorTarget
com.facebook.react.modules.debug.DidJSUpdateUiDuringFrameDetector
com.facebook.react.devsupport.BridgeDevSupportManager
com.facebook.react.uimanager.NativeKind
com.facebook.react.uimanager.debug.NotThreadSafeViewHierarchyUpdateDebugListener
com.facebook.react.uimanager.layoutanimation.LayoutAnimationController
com.facebook.react.uimanager.layoutanimation.LayoutAnimationListener
Node.js 22 Mínimo
O React Native 0.84 requer Node.js v22.11 ou posterior. Esta atualização melhora a disponibilidade de recursos modernos do JavaScript em toda a ecossistema de ferramentas React Native.
Garanta que você atualize sua versão do Node.js antes de fazer o upgrade. Recomendamos usar um gerenciador de versões como nvm ou fnm.
Outras Mudanças
- React 19.2.3: Esta versão sincroniza o React 19.2.3 com o React Native, incluindo os últimos fixes e melhorias da equipe do React.
- ESLint v9 Flat Config: A configuração ESLint do React Native agora suporta ESLint v9 Flat Config, tornando mais fácil adotar as últimas ferramentas de ESLint no seu projeto.
Suporte a Plataforma
- Formatos de imagem: O React Native 0.84 inclui suporte para formatos adicionais de imagens (HEIC e HEIF), tornando mais fácil trabalhar com saídas modernas de câmera e bibliotecas de imagens.
- PlatformColor: Testes aprimorados e suporte para PlatformColor em interpolações animadas e faixas de saída.
- Eventos do teclado no Android: Adicionado suporte para eventos
onKeyDown/onKeyUpno Android, permitindo a manipulação de eventos de teclado para teclados físicos e controladores remotos.
Acessibilidade
- Componentes de texto com onPress ou onLongPress: Agora recebem automaticamente a propriedade
accessibilityRole="link"para suporte de acessibilidade melhorado, garantindo que leitores de tela anunciem corretamente elementos de texto interativos. - No Android, trabalho significativo foi feito para resolver problemas com o estado de acessibilidade em views recicladas — assegurando que os estados
isClickableeOnClickListenersejam adequadamente reinicializados quando as views são recicladas, prevenindo leitores de tela de anunciar estados incorretos.
Melhorias na API URL
Adicionamos propriedades padrão ausentes para URL (hash, host, pathname, etc.) e métodos para URLSearchParams (get, set, delete, etc.), trazendo a implementação de URL do React Native mais próxima das especificações da web.

