Anunciando React Native 0.70

Newerton Vargas de Araujo
4 min readSep 21, 2022

--

React Native v0.70.0

Foi lançado uma nova versão do React Native, 0.70.0. Esta versão vem com várias melhorias, como uma nova configuração unificada para o CodeGen, Hermes como mecanismo padrão e suporte completo ao Android, juntamente com uma atualização da documentação para a nova arquitetura.

Nova Documentação da Nova Arquitetura

Nos últimos meses, a equipe do React Native trabalharam para adicionar mais conteúdo à seção Nova arquitetura da documentação. Na nova seção, você pode encontrar guias de migração, exemplos e tutoriais para se atualizar.

Junto com ele, você pode encontrar novos documentos mergulhando em Por que uma Nova Arquitetura e suas várias partes. Esperamos que isso ajude você a entender melhor a lógica por trás das novas APIs.

Hermes como motor padrão

O React Native 0.70 é a primeira versão com Hermes habilitado por padrão.

Este é o resultado do esforço colaborativo entre a equipe Hermes e a equipe React Native, juntamente com as contribuições inestimáveis da comunidade. As equipes trabalharam para melhorar e ajustar o Hermes para torná-lo mais eficiente e fornecer recursos altamente solicitados pela comunidade.

Uma nova configuração unificada para Codegen

Com a versão 0.70, introduziram uma maneira unificada de definir as especificações do Codegen para iOS e Android. Anteriormente, você tinha que colocar a configuração do Android em um arquivo build.gradle separado.

Agora, você pode defini-lo diretamente no package.json com:

"codegenConfig": {
"name": "CustomAnimationView",
"type": "components",
"jsSrcsDir": "./src",
"android": {
"javaPackageName": "com.custom.animation"
}
}

Essa melhoria fornece uma experiência mais consistente para os mantenedores de bibliotecas na migração de suas bases de código para a nova arquitetura.

Vinculação automática do Android para bibliotecas de nova arquitetura

Com a versão 0.70, os usuários da Nova Arquitetura podem vincular bibliotecas automaticamente sem qualquer configuração adicional em seus arquivos Android.mk ou CMake.

Autolinking é uma parte crucial da experiência de desenvolvimento React Native. Ele permite incluir bibliotecas externas com um comando yarn add, sem lidar com configurações de CocoaPods ou Gradle.

A Nova Arquitetura exigiu que adapta-se os recursos de vinculação automática para oferecer suporte a bibliotecas que estão usando o Codegen e expondo código nativo para desenvolvedores de aplicativos.

Embora o Autolinking tenha funcionado bem para bibliotecas de Nova Arquitetura no iOS, o mesmo não aconteceu com o Android. Com 0.70 fecharam essa lacuna e agora você pode continuar incluindo bibliotecas com yarn add ao seu projeto: elas serão vinculadas corretamente em qualquer arquitetura.

Suporte completo ao CMake para compilações do Android

A partir da versão 0.70, os usuários agora podem usar o CMake para configurar suas compilações nativas. Embora não esperam que os usuários do aplicativo escrevam diretamente o código C++, você ainda precisa de um ponto de entrada para a compilação nativa.

A partir de agora, você pode usar um arquivo CMakeLists.txt em vez de um arquivo Android.mk para qualquer coisa relacionada ao Android/Native em seu projeto.

Essa mudança beneficia usuários de aplicativos e bibliotecas na Nova Arquitetura como:

  • O arquivo CMake criado em seu aplicativo é muito menor (3 linhas de código vs mais de 50 linhas de código para arquivos Android.mk). Isso facilita a experiência de atualização entre as versões do React Native no futuro e menos código para manter do seu lado.
  • Codegen agora está gerando Android.mk e CMakerLists.txt, então as bibliotecas não devem se preocupar em fazer nada se estiverem usando a configuração padrão para bibliotecas de Nova Arquitetura.
  • A vinculação automática mencionada acima funcionará com arquivos CMake e Android.mk prontos para uso.
  • Apesar de os aplicativos serem gratuitos para usar arquivos Android.mk ou CMake, a solução recomendada no futuro seriam arquivos CMake (devido à melhor documentação, ferramentas e ecossistema em torno do CMake).

Destaques da versão 0.70

Conforme mencionado acima, algumas das melhorias mais importantes nesta versão estão centradas na experiência da Nova Arquitetura. No entanto, houve outras mudanças notáveis, incluindo:

Breaking changes

Também houve algumas mudanças:

Atualizações

E atualizamos algumas de nossas dependências:

  • Bump RN CLI to v9.0.0
  • Bump Android Gradle Plugin to 7.2.1
  • Bump Gradle to 7.5.1
  • Bump RCT-Folly to 2021–07–22
  • Bump Metro to 0.72
  • Bump SoLoader to 0.10.4

Você pode conferir a lista completa de alterações no Changelog.

Reconhecimentos

88 colaboradores com seus 493 commits ajudaram a tornar esse lançamento possível — obrigado a todos! Também somos gratos a todos os outros que deram seus comentários para garantir que essa liberação seja o mais estável possível.

--

--

Newerton Vargas de Araujo

Software Enginner | Next.js | NestJs | React Native | Flutter | DevOps