Una actualización sobre el despliegue de la Nueva Arquitectura
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Hola a todos, Como anunciamos anteriormente:
2022 será el año de la Nueva Arquitectura en código abierto.
Si aún no has tenido tiempo de explorar la Nueva Arquitectura de React Native (el Renderizador Fabric y el sistema TurboModule), ¡no hay mejor momento para hacerlo que ahora!
Queremos compartir con la comunidad algunas iniciativas y materiales que preparamos para asegurarnos de que todos participen en este esfuerzo.
El Grupo de Trabajo
Recientemente lanzamos el Grupo de Trabajo de la Nueva Arquitectura de React Native en GitHub, un repositorio solo para discusión que coordina y apoya el despliegue de la Nueva Arquitectura en todo el ecosistema.
Imaginamos este grupo como un espacio donde la comunidad puede reunirse, compartir ideas y discutir desafíos durante la adopción de la Nueva Arquitectura. Además, usaremos este grupo para compartir información y actualizaciones con toda la comunidad para garantizar transparencia.
Para mantener las discusiones enfocadas, decidimos que este grupo sea público para lectura pero restringido para escritura solo a usuarios aprobados.
Si deseas unirte a la conversación, puedes completar este formulario para postularte o nominar a alguien que consideres un aporte valioso al debate.
Todos son bienvenidos a postularse para participar.
Como en todo foro de discusión, queremos recalcar nuevamente la importancia de ser respetuosos y acogedores con las opiniones de los demás. Por favor, aprovecha para leer nuestro código de conducta si aún no lo has hecho.
La Guía de Migración
Tras varias rondas de revisión y comentarios, finalmente fusionamos la Guía de Migración (antes conocida como el Manual). Puedes encontrarla en el grupo de trabajo de Nueva Arquitectura.
Esta Guía de Migración te mostrará cómo crear un componente Fabric personalizado o un TurboModule con un enfoque paso a paso. También te enseñará cómo adaptar tu aplicación o biblioteca existente para usar la Nueva Arquitectura.
Además, queremos recordarte la nueva sección de Arquitectura de nuestro sitio web. Allí encontrarás artículos detallados y explicaciones sobre el funcionamiento interno de React Native. En particular, la sección de Fabric puede ayudarte a comprender la canalización de renderizado en el mundo de la Nueva Arquitectura.
Finalmente, por favor considera compartir tus comentarios sobre este material documental en el grupo de trabajo. Constantemente buscamos opiniones de desarrolladores y queremos asegurarnos de entregar el contenido que te resulte más útil.
Durante los próximos meses, trabajaremos en refinar y añadir más documentación para ayudarte aún más.
La Plantilla de Nueva Arquitectura
React Native 0.68.0 está próximo a lanzarse. Esta versión marca un hito crucial en el despliegue de la Nueva Arquitectura, ya que es la primera que incluye un interruptor opcional en la nueva plantilla de aplicación.
Esto significa que podrás probar la Nueva Arquitectura cambiando una sola línea en la plantilla. También añadimos comentarios y documentación extensiva para que puedas usarla inmediatamente sin necesidad de lecturas adicionales. Esperamos que esto te ayude a adoptar la Nueva Arquitectura reduciendo la cantidad de código que debes escribir.
En las próximas versiones, seguiremos actualizando la plantilla para hacerla aún más simplificada y fácil de usar.
Para habilitar la Nueva Arquitectura en cualquier plataforma, puedes:
-
En iOS, ejecuta
RCT_NEW_ARCH_ENABLED=1 bundle exec pod installdentro de la carpetaios. -
En Android, establece la propiedad
newArchEnabledentruemediante cualquiera de estas opciones:- Modificando la línea correspondiente en el archivo
android/gradle.properties. - Configurando la variable de entorno
ORG_GRADLE_PROJECT_newArchEnabled=true - Invocando Gradle con
-PnewArchEnabled=true
- Modificando la línea correspondiente en el archivo
Luego puedes ejecutar tu aplicación con yarn react-native run-android o run-ios y funcionará con Fabric y TurboModules activados.
Te invitamos a probar esta nueva plantilla y reportar cualquier error o comportamiento inesperado que encuentres. Durante los últimos meses trabajamos intensamente para corregir errores y fallos de compilación que hubieran sido difíciles de detectar sin la constante retroalimentación y pruebas de la comunidad.
El ecosistema de bibliotecas de terceros
La comunidad no podrá migrar a la Nueva Arquitectura sin el apoyo completo de autores y mantenedores de bibliotecas de terceros.
Entendemos que este proceso puede ser tedioso y reconocemos la importancia de dar soporte a usuarios tanto en la arquitectura antigua como en la Nueva. Durante los próximos meses, nos enfocaremos en apoyar a los desarrolladores de bibliotecas para facilitar su migración.
Si eres desarrollador de bibliotecas, te invitamos a publicar una actualización en el grupo de trabajo sobre la Nueva Arquitectura con el estado de tus bibliotecas. Esto te ayudará a atraer usuarios tempranos y nos permitirá identificar posibles bloqueos.
Si eres usuario de bibliotecas, puedes publicar aquí un mensaje para solicitar la migración de una biblioteca. Si identificamos una biblioteca que bloquea a varios usuarios, contactaremos a su mantenedor para entender los motivos de la falta de migración.
Finalmente, queremos reconocer a Software Mansion por lanzar una nueva versión de react-native-screens con soporte para ambas arquitecturas. Además, publicaron un artículo (Introducing Fabric to react-native-screens) donde relatan su experiencia de migración. Esperamos que este testimonio te resulte inspirador y útil para abordar tu propia migración.
Lanzamientos
El trabajo en la versión preliminar 0.68 ha concretado gran parte del mejorado proceso de lanzamiento que definimos el semestre pasado.
Nos complace compartir que con la versión 0.68 logramos:
-
Transferir con éxito el trabajo de lanzamiento a una rotación interna. Esto se apoya en una documentación mejorada que reducirá el factor de riesgo del proceso.
-
Iniciar conversaciones con socios para implementar una rotación de Copiloto. Esperamos que este esfuerzo mejore la transparencia del proceso y oriente a nuestros socios sobre dónde invertir para apoyar los lanzamientos de React Native.
-
Incorporar varios Colaboradores de Lanzamiento y Evaluadores de la comunidad. ¡Muchas personas respondieron a nuestra convocatoria de ayuda! Sus comentarios nos han ayudado a corregir errores cruciales y regresiones, especialmente en la nueva arquitectura. ¡Gracias a todos los que participaron probando la versión!
Con React Native 0.69 continuaremos refinando este proceso, idealmente logrando que los socios proporcionen señales de lanzamiento más tempranas e integrando copilotos. Como siempre, cualquier comentario es más que bienvenido. Si deseas unirte como probador o colaborador de versiones, regístrate aquí.
Hacia Hermes como motor predeterminado
Uno de los puntos cruciales del despliegue de la Nueva Arquitectura es la adopción del nuevo motor JavaScript: Hermes.
Con la Nueva Arquitectura de React Native, estableceremos Hermes como motor predeterminado. Esto significa que toda la nueva documentación y plantillas tendrán Hermes activado.
Ten en cuenta que seguiremos trabajando con la comunidad para garantizar que otros motores, como JSC (JavaScript Core), sean compatibles. Aún puedes usar el motor que prefieras, pero deberás desactivar explícitamente Hermes.
Para mejorar la estabilidad de Hermes, estamos trabajando en cambiar el modelo de distribución de Hermes. Específicamente, visualizamos que el proceso de lanzamiento de Hermes esté más alineado con el proceso de lanzamiento de React Native.
Esto nos permitirá entregar una versión de React Native con un motor JS integrado que sea totalmente compatible. Evitarás lidiar con fallos en tiempo de ejecución e incompatibilidades de Hermes que son muy difíciles de depurar y entender.
Además, esto acortará el ciclo para incorporar mejoras y correcciones de errores en Hermes, lo que nos permitirá ser más ágiles ante las necesidades de los usuarios de React Native.
Compartiremos más sobre este tema en los próximos meses. Mientras tanto, no dudes en unirte a la discusión en el Grupo de Trabajo.
Si aún no has probado Hermes, ahora es el momento de hacerlo. Y por favor asegúrate de reportar cualquier problema o obstáculo que encuentres.
Con esto, damos por terminado.
Agradezco a Andrei, Aleksandar, Dmitry, Eli, Luna, Héctor y Neil por revisar esta publicación y contribuir valiosamente a estos esfuerzos.
Y esperamos con interés leer sus historias de migración.
