React Native 0.73: Mejoras en depuración, soporte estable para enlaces simbólicos y más
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
¡Hoy lanzamos React Native 0.73! Esta versión incluye mejoras en depuración con Hermes, soporte estable para enlaces simbólicos, compatibilidad con Android 14 y nuevas características experimentales. También estamos dejando obsoletas funciones antiguas de depuración y lanzando el siguiente pilar de la Nueva Arquitectura: ¡el Modo sin Bridge!
Lo más destacado
Cambios importantes
Lo más destacado
Mejoras en depuración
Los equipos de React Native y Hermes están comprometidos con mejorar la experiencia de depuración en React Native. En la versión 0.73, nos complace compartir los primeros avances de esta inversión continua.
Historial de logs en la consola de Hermes
console.log() sigue siendo un método muy popular para depurar rápidamente código JavaScript. En versiones anteriores, los logs de la consola en apps de React Native no se registraban hasta conectar un depurador. Esto dificultaba observar logs que ocurrían al inicio de la carga de la aplicación.
En React Native 0.73 hemos solucionado este problema. Hermes ahora captura todas las llamadas console.log() en segundo plano, enviándolas a la pestaña Consola cuando se conecta un depurador por primera vez, igualando la experiencia de depuración en navegadores web. Este nuevo comportamiento funciona con Flipper, Chrome DevTools conectado a Hermes y el nuevo depurador experimental.
Documentación de depuración actualizada
Hemos renovado la sección de Depuración en nuestra documentación, que ahora incluye información actualizada sobre cómo conectar todos los depuradores compatibles, más detalles sobre React DevTools y gráficos renovados.

Nuevo depurador experimental
El equipo de React Native está trabajando en una nueva experiencia de depuración de JavaScript, destinada a reemplazar Flipper, con una Vista Previa Técnica disponible a partir de React Native 0.73. El nuevo depurador se abre inmediatamente y cuenta con una interfaz de Chrome DevTools simplificada y personalizada para depurar React Native con Hermes.
El nuevo depurador es experimental y tiene algunos problemas conocidos en los que estamos trabajando activamente para resolverlos en una futura versión de React Native. Si lo pruebas, por favor utiliza el mismo hilo de discusión para informar comentarios.

Aprende más sobre cómo habilitar esta experiencia en la documentación.
Soporte estable para enlaces simbólicos en Metro
El soporte para resolver enlaces simbólicos en Metro ahora está habilitado por defecto. Esta funcionalidad permite que React Native funcione con configuraciones de monorepositorio cuando los directorios contenedores están configurados con watchFolders.
Los enlaces simbólicos están profundamente integrados en los componentes internos de Metro, lo que significa que funcionan con características como Actualización rápida (Fast Refresh) y generan un bajo impacto en el rendimiento durante el empaquetado. Son compatibles en todas las plataformas de escritorio, tanto con Watchman como sin él.
Soluciones alternativas para monorepositorios
Somos conscientes de que aún existen casos extremos al usar React Native en una estructura de monorepositorio. Tenemos trabajo planificado para abordar algunos de estos problemas, que no llegaron a tiempo para la versión 0.73, pero que nuestro objetivo es implementarlos lo antes posible.
Para proyectos plantilla de React Native (npx react-native init), deberás configurar cualquier watchFolders fuera del directorio raíz del proyecto para que Metro los detecte (más información). También es posible que necesites actualizar las rutas de archivo si tu dependencia react-native está instalada en una carpeta en un nivel diferente.
Para aplicaciones Expo, el soporte para espacios de trabajo de Yarn (Classic) está configurado listo para usar. Consulta también la guía Trabajar con monorepos en la documentación de Expo.
Plantilla de Kotlin en Android
Nos complace anunciar que, a partir de la versión 0.73, Kotlin es ahora el lenguaje recomendado para aplicaciones Android construidas con React Native. Esto sigue la dirección en la que el ecosistema de Android se ha estado moviendo durante varios años y te permite escribir tu aplicación usando un lenguaje moderno.
Hemos actualizado la plantilla de React Native en Android para usar Kotlin en lugar de Java. Los nuevos archivos MainActivity.kt y MainApplication.kt son un 36% más pequeños en tamaño.
The Upgrade Helper has also been updated to make it easier to migrate your .java files to .kt files.
If you've previously modified the Java files in your project and you need support migrating them to Kotlin, you can use the Code > Convert Java file to Kotlin File utility of Android Studio (also accessible with the shortcut Cmd ⌘ + Shift ⇧ + Option ⌥ + K).
Soporte para Android 14
Hemos actualizado React Native para dar soporte completo a Android 14. A partir de la versión 0.73, los desarrolladores de React Native ahora pueden dirigirse a la última versión del SDK de Android, Nivel de API 34 (Upside Down Cake).
Actualización a Java 17 y Android Gradle Plugin
Para dar soporte a Android 14, hemos actualizado la versión de Android Gradle Plugin (AGP) utilizada para construir aplicaciones Android de 7.4.x a 8.1.x.
Este incremento de versión mayor de AGP viene acompañado de una serie de cambios importantes que están disponibles en las notas de lanzamiento de Google (8.0.0 y 8.1.0).
Lo más importante es que Java 17 es ahora un requisito para construir aplicaciones Android. Puedes actualizar tu versión de Java a 17 ejecutando:
brew install --cask zulu@17
y actualizando tu JAVA_HOME como se documenta en la guía de introducción.
Si eres desarrollador de bibliotecas, tus bibliotecas deberían funcionar con React Native 0.73 sin cambios. A principios de este año, publicamos una nota con una aclaración sobre lo que significa el incremento de AGP para ti como autor de bibliotecas.
Conceder acceso parcial a fotos y videos
Acceso a fotos seleccionadas permite a los usuarios de Android 14 otorgar acceso específico a elementos de su biblioteca multimedia, en lugar de acceso completo. En la versión 0.73, las apps de React Native ahora soportan esta funcionalidad mediante el permiso READ_MEDIA_VISUAL_USER_SELECTED en la API PermissionsAndroid.

Incremento del SDK mínimo
React Native 0.73 será la última versión que admita Android 5.0 (API nivel 21). La próxima versión de React Native tendrá como mínimo el SDK versión 23 (Android 6.0). Lee más sobre los próximos cambios del SDK mínimo aquí.
Actualizaciones de la Nueva Arquitectura
Continuamos implementando la Nueva Arquitectura de React Native para hacerla accesible a toda la comunidad de código abierto.
Desde React Native 0.68, tanto el Nuevo Renderizador (Fabric) como el Nuevo Sistema de Módulos Nativos (TurboModules) han estado disponibles para que los usuarios experimenten y evalúen. Agradecemos a la comunidad por los comentarios recibidos hasta ahora.
Hoy lanzamos otro componente de la Nueva Arquitectura: Modo sin puente (Bridgeless Mode). Hasta ahora, al habilitar la Nueva Arquitectura, el puente seguía disponible para compatibilidad con componentes y módulos antiguos. Sin embargo, nuestra visión es retirar completamente el puente. Desde React Native 0.73, puedes habilitar el Modo sin puente que desactiva completamente la creación del puente.
Junto con el Modo sin puente, incluimos una Capa de Interoperabilidad de Módulos Nativos que te permitirá reutilizar tus módulos antiguos en este modo. La Capa de Interoperabilidad del Renderizador introducida en React Native 0.72 también se ha adaptado para funcionar con el Modo sin puente.
Como el resto de la Nueva Arquitectura, el Modo sin puente es inicialmente experimental. Invitamos a los usuarios interesados a habilitarlo y reportar cualquier problema o incompatibilidad en el grupo de trabajo de Nueva Arquitectura.
Funciones de depuración obsoletas
Integración Flipper ↔ React Native
Estamos alejándonos gradualmente de Flipper como herramienta predeterminada para depurar apps de React Native. En 0.73, comenzamos deprecando la integración nativa de Flipper incluida en React Native (código de arranque que conecta los plugins principales de Flipper). Eliminaremos esta integración y dependencia en la próxima versión, lo que significa que componentes como el plugin de Red dejarán de funcionar.
Sin cambios: Flipper como producto independiente para depuración nativa seguirá existiendo. Incluso después de su eliminación de nuevos proyectos de React Native, los desarrolladores podrán agregar Flipper manualmente a sus apps si lo desean.
Para más información sobre por qué nos alejamos de Flipper, consulta la RFC.
Depuración remota de JavaScript
La Depuración Remota de JavaScript es un modo de depuración heredado que conecta un navegador web externo (Chrome) a tu aplicación y ejecuta tu código JavaScript dentro de una página web, es decir, en http://localhost:8081/debugger-ui. Este modelo podía causar comportamientos inconsistentes en la aplicación durante la depuración y es incompatible con módulos nativos en la Nueva Arquitectura.
En la versión 0.73, la Depuración Remota de JavaScript está obsoleta y ha sido eliminada del Menú de Desarrollo. Habilitar el depurador remoto ahora debe hacerse manualmente mediante la API NativeDevSettings. Esto se explica en la documentación de Otros Métodos de Depuración.
La Depuración Remota de JavaScript era anteriormente la experiencia de depuración predeterminada para aplicaciones que usaban JavaScriptCore (JSC). Recomendamos usar en su lugar las Herramientas de Desarrollo de Safari (depuración directa con JSC) para aplicaciones iOS.
Recomendamos usar Hermes para una experiencia de depuración consistente en todas las plataformas.
Cambios importantes
Renombramiento de paquetes de Babel
Hemos reubicado dos paquetes relacionados con Babel fuera de Metro hacia el repositorio de React Native y su esquema de versiones, lo que nos permite simplificar el mantenimiento y las actualizaciones. Las nuevas versiones de estos paquetes admiten funciones de la Nueva Arquitectura en la 0.73, lo que significa que estas dependencias deben actualizarse.
Sigue el Upgrade Helper al actualizar para asegurarte de haber actualizado estas dependencias. Algunos paquetes han sido renombrados:
| Old Package Name | New Package Name |
|---|---|
metro-react-native-babel-preset | @react-native/babel-preset |
metro-react-native-babel-transformer | @react-native/metro-babel-transformer |
@react-native/babel-preset ahora incluye @react-native/babel-plugin-codegen, por lo que ya no es necesario especificarlo por separado en tu archivo de configuración de Babel.
Otros cambios importantes
Estos son algunos de los cambios importantes en la versión 0.73. Consulta el registro de cambios completo para ver la lista completa.
-
Eleva el requisito mínimo de Node.js a la versión 18.x (#37709) (ver también Fin de soporte de Node.js 16).
-
La plantilla ahora usa TypeScript 5.0 (#36862).
- Los tipos de React Native siguen funcionando en TypeScript 4.8.
-
Android: Java 17 es ahora un requisito para construir aplicaciones Android (ver arriba).
-
Android: Actualización mayor de Fresco a la versión 3.0 (#38275).
-
iOS: Eleva la versión mínima de iOS a 13.4 (#36795).
-
iOS: Metro ya no se iniciará automáticamente al ejecutar compilaciones mediante Xcode (#38242).
Para autores de bibliotecas:
- Android: Actualización a AGP 8.1.1 (discusión)
Cambios en la CLI de React Native
Cambios importantes destacados
-
Cambio de prefijo de tarea predeterminado en el comando
build-android. A partir de ahora, al ejecutarbuild-android, se ejecutará la tareabundleen lugar deassemble(#1913). -
Eliminar flujo alternativo para configuraciones predeterminadas de Metro (#1972).
- El formato actualizado de
metro.config.jsintroducido en 0.72 ahora es obligatorio en 0.73, ya que hemos eliminado la copia alternativa de estos valores predeterminados desde CLI.
- El formato actualizado de
-
Eliminar la opción
--configurationderun-ios(reemplazada por--mode) (#2028). -
Eliminar la opción
--variantdel comandobuild-android(reemplazada por--mode) (#2026).
Ver changelog completo para v12.0.0.
@types/react-native en desuso
Como se mencionó en Soporte de primera clase para TypeScript, hemos incluido tipos de TypeScript con react-native desde la versión 0.71 y ahora marcamos @types/react-native como desuso en 0.73.
No lanzaremos futuros parches para versiones existentes. La recomendación es migrar desde @types/react-native. Consulta las instrucciones sobre cómo migrar.
Agradecimientos
React Native 0.73 contiene más de 2259 commits de 68 colaboradores. ¡Gracias por todo su arduo trabajo!
Actualización a 0.73
Utiliza el React Native Upgrade Helper para ver cambios de código entre versiones de React Native en proyectos existentes, además de la documentación de actualización. También puedes crear un nuevo proyecto con npx react-native@latest init MyProject.
Si usas Expo, React Native 0.73 será compatible en la versión Expo SDK 50.
0.73 es ahora la última versión estable de React Native y 0.70.x pasa a ser no compatible. Para más información consulta la política de soporte de React Native.




