TL;DR đ
Atualização React 19.1.0 traz suporte a gradientes radiais, builds iOS mais rĂĄpidos, APKs Android menores, fim da arquitetura legada, novos avisos para deep imports, TypeScript estrito opt-in, descontinuação oficial do JSC, mudanças crĂticas com Kotlin 2.1.20 e ESLint, alĂ©m de dependĂȘncias iOS prĂ©-compiladas.
E aĂ, galera dev! đ Finalmente saiu a versĂŁo oficial do React Native 0.80! Depois de acompanharmos os RCs, agora temos a versĂŁo estĂĄvel com todas as novidades confirmadas. Vamos ver o que realmente entrou, o que mudou desde os RCs e o que vocĂȘ precisa saber antes de atualizar seus projetos.
Grandes Novidades Confirmadas! đ
React 19.1.0 Chegou!
A versĂŁo final do RN 0.80 vem com o React 19.1.0 fresquinho (0e11e6a28b)! Isso traz melhorias como "owner stacks" para ajudar a identificar qual componente causou um erro especĂfico (embora tenha um bug conhecido se vocĂȘ usar o plugin @babel/plugin-transform-function-name).
Chega de Deep Imports! đ«
Aqueles imports profundos tipo import {Alert} from 'react-native/Libraries/Alert/Alert' agora estĂŁo oficialmente deprecados (319ba0afd2, 9fc2a9b9e6). O ESLint e o console JS vĂŁo te avisar quando vocĂȘ fizer isso (87809d9326). A ideia Ă© que no futuro vocĂȘ sĂł use imports diretos da raiz:
// Antes - import profundo
import {Alert} from 'react-native/Libraries/Alert/Alert';
// Agora - import da raiz
import {Alert} from 'react-native';
Algumas APIs nĂŁo estĂŁo disponĂveis na raiz e vĂŁo sumir mesmo. Isso Ă© intencional pra reduzir a superfĂcie da API do React Native.
API TypeScript Estrita (Opcional) đ§
Tem uma nova opção de tipos TypeScript mais precisos e seguros (6ea24f7bb9)! Esses tipos são:
- Gerados diretamente do cĂłdigo-fonte (mais precisos)
- Restritos ao arquivo index do React Native (definindo melhor a API pĂșblica)
Ă opt-in por enquanto, entĂŁo vocĂȘ pode migrar quando estiver pronto. Se vocĂȘ usa APIs padrĂŁo, provavelmente nem vai precisar mudar nada.
Arquitetura Legacy Oficialmente Congelada âïž
A New Architecture Ă© o padrĂŁo desde a versĂŁo 0.76, e agora a Legacy Architecture estĂĄ oficialmente congelada. Isso significa:
- Sem novos bugfixes ou features na Legacy Architecture
- Sem testes na Legacy Architecture durante o desenvolvimento de novas versÔes
- Avisos no DevTools para APIs que nĂŁo funcionarĂŁo na New Architecture (706b6e878d)
VocĂȘ ainda pode optar por usar a Legacy Architecture, mas ela serĂĄ removida no futuro.
DependĂȘncias iOS PrĂ©-compiladas (Experimental) âĄ
Cansado de esperar o primeiro build iOS? Agora tem uma opção experimental para usar dependĂȘncias prĂ©-compiladas que reduzem o tempo de build inicial em ~12%! Para usar, basta:
RCT_USE_RN_DEP=1 bundle exec pod install
Ou adicionar no seu Podfile:
ENV['RCT_USE_RN_DEP'] = '1'
APKs Android Mais Enxutos đŠ
Graças Ă Otimização Interprocedural (IPO) habilitada para React Native (f107c28d2f) e Hermes (2da062f9d1), os APKs Android ficaram ~1MB menores! E vocĂȘ nĂŁo precisa fazer nada alĂ©m de atualizar para a versĂŁo 0.80.
Redesign da New App Screen đš
A tela inicial do template foi movida para seu prĂłprio pacote (3cf0102007) e ganhou um visual novo. Isso reduz o boilerplate inicial e melhora a experiĂȘncia em telas maiores.
Ăltima VersĂŁo com Suporte Oficial ao JSC â ïž
Esta Ă© a Ășltima versĂŁo do React Native com suporte oficial ao JavaScriptCore. No futuro, o suporte serĂĄ oferecido via pacote comunitĂĄrio @react-native-community/javascriptcore.
O Que Mudou Desde os RCs? đ
Campo "exports" no package.json
Foi adicionado o campo "exports" no package.json do react-native para preparar a API JavaScript eståvel. Por enquanto, ele ainda expÔe todos os subpaths por padrão, mas isso pode afetar como os módulos são resolvidos:
- No Metro, extensĂ”es especĂficas de plataforma nĂŁo serĂŁo expandidas automaticamente
- No Jest, a capacidade de mockar imports profundos pode ser alterada
Kotlin 2.1.20
A versĂŁo do Kotlin foi atualizada para 2.1.20, trazendo novos recursos de linguagem em preview que vocĂȘ pode começar a usar nos seus mĂłdulos/componentes.
Mais Classes Internas e MigraçÔes para Kotlin
Vårias classes foram marcadas como internas no Android, incluindo StateWrapperImpl (9f941c50c9), ChoreographerCompat (f8b2956437) e ModuleDataCleaner (6fa1864d52). Além disso, mais classes foram migradas de Java para Kotlin, incluindo todo o pacote com.facebook.react.devsupport (9da485b54c).
Breaking Changes que VocĂȘ Precisa Saber đ„
JavaScript
- ESLint Plugin React Hooks atualizado de v4.6.0 para v5.2.0 (4de592756b), podendo gerar novos erros de lint
- Nomes de componentes não podem mais começar com
_(underline)
Android
-
StandardCharsetsfoi removida (40b38d0a44) (usejava.nio.charset.StandardCharsets) - Classes como
ReactEditText(cac27d15be),NetworkModule(8726e26348),ReactTextInputManager(ab47834eb1) foram convertidas para Kotlin - VĂĄrias classes foram marcadas como internas e nĂŁo devem ser acessadas diretamente
iOS
-
RCTFloorPixelValuefoi removido deRCTUtils.h(dc97df10a2) - Helpers de configuração
BridgeModuleBatchDidCompleteforam deletados (cbad8aafa5)
Novidades Extras Confirmadas đ
Gradientes Radiais
Finalmente temos suporte nativo a gradientes radiais (1b45dc8033, a2409941c2, d7533dce1c)!
Mais Cores no CSS
Suporte para notação hwb() (692b05e77d) e alpha no rgb() tipo rgb(R G B / A) (7441127040).
URLSearchParams Nativo
Implementação nativa de URLSearchParams (af1f1e4fe5) para manipular query strings sem precisar de libs extras.
Acessibilidade Melhorada
Nova prop accessibilityOrder para Android e iOS (8cf4d5b531), além de screenReaderFocusable para Android (4ce093154d) e accessibilityRespondsToUserInteraction para iOS (fd8a3456ca).
Pressable com onPressMove
Agora o componente Pressable expÔe a prop onPressMove (6df938c72e) para mais controle durante interaçÔes de toque.
Como Atualizar? đ ïž
Use o React Native Upgrade Helper para ver as mudanças de código entre versÔes e siga a documentação oficial de upgrade.
Se vocĂȘ usa Expo, o React Native 0.80 serĂĄ suportado em uma versĂŁo canary do Expo SDK.
Resumindo... đŻ
O React Native 0.80 traz o React 19.1, estabiliza a API JavaScript, congela oficialmente a Legacy Architecture, reduz o tamanho dos APKs Android e o tempo de build iOS. à uma versão focada em estabilidade, performance e preparação para o futuro sem a Legacy Architecture.
Agora Ă© hora de atualizar seus projetos e aproveitar todas essas melhorias! Bom cĂłdigo! đ
Top comments (0)