Presentación
React Native es un framework open source que permite crear aplicaciones Android e iOS con React.
El desarrollador describe la interfaz mediante componentes React y JavaScript o TypeScript, pero el resultado no es una página HTML ejecutada dentro de una WebView. Componentes como View, Text, Image o TextInput se apoyan en las capacidades nativas de las plataformas.
Una gran parte del código de la aplicación puede así compartirse entre Android e iOS, manteniendo la posibilidad de escribir código específico para cada sistema cuando sus comportamientos o API son diferentes.
Desde React Native 0.82, el framework funciona exclusivamente con su New Architecture, basada especialmente en Fabric para el renderizado y TurboModules para las integraciones nativas.
El motor JavaScript Hermes V1 se utiliza por defecto desde React Native 0.84.
A 3 de octubre de 2026, React Native 0.87.1 constituye la última versión estable. La futura rama 0.88 todavía se encuentra en fase release candidate.
Funcionalidades
Componentes nativos
React Native proporciona diferentes Core Components que sirven como base para las interfaces móviles.
View estructura la interfaz, Text muestra texto, Image gestiona imágenes y TextInput las entradas del usuario.
ScrollView, FlatList, SectionList, Pressable y otros componentes también cubren varias necesidades habituales.
Estos componentes están conectados a las vistas nativas de las plataformas y no al DOM de un navegador.
React, componentes y Hooks
React Native utiliza el modelo de programación de React.
Las aplicaciones están formadas por componentes reutilizables que utilizan props, state, context y Hooks.
Los desarrolladores familiarizados con React para Web encuentran por tanto gran parte de los mismos conceptos.
Sin embargo, los elementos visuales son diferentes: deben utilizarse componentes React Native en lugar de etiquetas HTML.
Layout y estilos
React Native dispone de su propio sistema de estilos inspirado en la Web.
Los estilos pueden definirse mediante objetos JavaScript o StyleSheet.create().
El layout se basa principalmente en Flexbox, con el motor Yoga para calcular la disposición de los elementos.
Algunas propiedades se parecen a CSS, pero React Native no constituye una implementación completa del lenguaje CSS.
New Architecture
La New Architecture es actualmente la única arquitectura de React Native.
Sustituye al antiguo sistema histórico y se basa especialmente en Fabric, TurboModules, JSI y Codegen.
Fabric constituye el sistema moderno de renderizado y mejora la interoperabilidad entre React y las vistas nativas de las plataformas.
TurboModules moderniza por su parte los intercambios con las funcionalidades nativas.
Módulos y componentes nativos
Una aplicación puede acceder a funcionalidades ausentes del núcleo de React Native utilizando bibliotecas comunitarias o su propio código nativo.
Los Turbo Native Modules exponen a JavaScript funcionalidades escritas especialmente en Kotlin, Java, Swift, Objective-C o C++.
Los Fabric Native Components permiten integrar vistas nativas personalizadas dentro del árbol React.
Codegen genera parte de las interfaces necesarias entre ambos entornos.
Hermes
Hermes es el motor JavaScript optimizado para React Native.
React Native distribuye una versión de Hermes probada con cada versión del framework para limitar problemas de compatibilidad.
Desde la versión 0.84, Hermes V1 se utiliza por defecto.
El motor ejecuta el JavaScript de la aplicación en Android e iOS sin depender del motor de un navegador Web.
Metro
Metro es el bundler utilizado por React Native.
Analiza los módulos JavaScript y TypeScript, transforma el código y produce el bundle destinado a la aplicación.
React Native 0.87 utiliza Metro 0.87, con mejoras especialmente en la generación de source maps y el consumo de memoria.
El desarrollo también se beneficia de Fast Refresh para mostrar rápidamente los cambios realizados en el código.
TypeScript
React Native admite directamente TypeScript.
Desde React Native 0.87, la Strict TypeScript API constituye la API JavaScript pública predeterminada.
Las definiciones de tipos se generan directamente a partir del código fuente del framework para permanecer mejor sincronizadas con su API real.
Los antiguos imports profundos hacia archivos internos de React Native ya no forman parte de la API pública moderna.
Código específico para cada plataforma
Compartir código no impide adaptar determinados comportamientos a Android o iOS.
La API Platform permite detectar la plataforma y utilizar una implementación específica.
También es posible crear archivos como Component.android.tsx y Component.ios.tsx.
Una aplicación puede así compartir su lógica general mientras conserva interfaces o integraciones nativas específicas de cada sistema.
React Native DevTools
React Native DevTools proporciona un entorno de depuración dedicado.
Permite especialmente inspeccionar componentes React, props, state, rendimiento y actividad JavaScript.
El framework también proporciona LogBox para mostrar errores y advertencias durante el desarrollo.
Estas herramientas sustituyen progresivamente varios workflows históricos basados en herramientas externas o depuración mediante Chrome.
Expo
React Native no define por sí mismo una solución completa para navegación, builds, distribución o acceso a todas las API de los dispositivos.
Para una nueva aplicación, el equipo React Native recomienda actualmente utilizar un framework React Native, especialmente Expo.
Expo añade especialmente routing, bibliotecas nativas, herramientas de desarrollo y gestión simplificada de builds.
Sin embargo, React Native puede seguir utilizándose directamente con Community CLI cuando el proyecto tiene restricciones particulares o necesita una integración profunda con una aplicación nativa existente.
Integración en una aplicación existente
React Native no obliga a reconstruir completamente una aplicación móvil existente.
Puede integrarse progresivamente en un proyecto Android o iOS ya desarrollado de forma nativa.
Determinadas vistas o funcionalidades pueden así desarrollarse con React Native mientras el resto de la aplicación continúa utilizando Kotlin, Java, Swift u Objective-C.
Este enfoque resulta útil para proyectos que desean adoptar el framework de forma gradual.
Casos de uso
Crear una aplicación Android e iOS
React Native permite compartir una gran parte de la interfaz y de la lógica de negocio entre ambas plataformas.
Las diferencias pueden aislarse en archivos o componentes específicos cuando sea necesario.
Desarrollar con un equipo React
Un equipo que ya posee experiencia con React y TypeScript puede reutilizar gran parte de sus conocimientos para el desarrollo móvil.
Componentes, Hooks y modelos de datos siguen siendo cercanos a los utilizados en Web.
Construir una aplicación con Expo
React Native asociado a Expo resulta adecuado para proyectos que quieren disponer rápidamente de routing, módulos nativos, entorno de desarrollo y herramientas de build.
El código nativo personalizado sigue siendo posible cuando las necesidades superan los módulos proporcionados.
Acceder a API nativas
React Native puede comunicarse con las funciones propias de los dispositivos, directamente o mediante bibliotecas.
Cámara, almacenamiento, notificaciones, sensores y otras funciones pueden así integrarse dentro de la aplicación.
Modernizar progresivamente una aplicación nativa
Una empresa puede integrar React Native en determinadas partes de una aplicación existente sin tener que reemplazar inmediatamente todo el proyecto.
Este enfoque permite realizar una migración o adopción por etapas.
Conclusión
React Native adapta el modelo de programación de React al desarrollo de aplicaciones nativas Android e iOS.
Permite compartir una gran parte del código manteniendo al mismo tiempo acceso a las API y componentes específicos de cada plataforma.
New Architecture, Fabric, TurboModules y Hermes han modernizado profundamente su funcionamiento interno, mientras que TypeScript y Metro estructuran el workflow de desarrollo.
Sin embargo, React Native no elimina completamente las diferencias entre Android e iOS. Builds, determinadas API, permisos y varios comportamientos siguen ligados a las plataformas nativas.
El ecosistema recomienda actualmente Expo para iniciar la mayoría de nuevas aplicaciones, mientras que el uso directo de React Native sigue siendo adecuado para proyectos que necesitan mayor control nativo.
Para crear aplicaciones móviles multiplataforma con React manteniendo acceso a las capacidades nativas, React Native constituye una de las principales soluciones del ecosistema JavaScript.
Puntos de atención
-
React Native 0.87.1 es la última versión estable a 3 de octubre de 2026.
-
React Native 0.88 todavía se encuentra en fase release candidate. Su versión estable no se utiliza por tanto como referencia en esta ficha.
-
React Native es gratuito y open source bajo licencia MIT, incluido para uso comercial.
-
El proyecto está actualmente bajo la responsabilidad de la React Foundation. Meta continúa siendo un contribuidor importante del ecosistema.
-
Desde React Native 0.82, New Architecture es obligatoria. La antigua Legacy Architecture ya no está disponible como modo de ejecución.
-
Hermes V1 es el motor JavaScript predeterminado desde React Native 0.84.
-
React Native 0.87 utiliza Strict TypeScript API por defecto. Algunos antiguos imports internos o tipos históricos requieren una migración.
-
React Native 0.87 necesita Node.js 22.13 o superior. La cadena Android también utiliza Android Gradle Plugin 9 y Kotlin 2.0 o superior.
-
Swift Package Manager todavía es experimental en React Native 0.87. CocoaPods continúa siendo la vía compatible por defecto para dependencias iOS.
-
Compilar localmente una aplicación iOS requiere macOS y Xcode. El desarrollo Android puede realizarse desde Windows, macOS o Linux.
-
React Native no significa que el 100 % del código sea necesariamente idéntico entre Android e iOS. Interfaces, permisos o API específicas pueden necesitar adaptaciones.
-
El equipo React Native recomienda actualmente un framework como Expo para nuevas aplicaciones. El uso directo con Community CLI sigue siendo compatible cuando un proyecto necesita mayor control.
-
Las bibliotecas comunitarias deben ser compatibles con New Architecture. Las bibliotecas antiguas basadas en las API nativas históricas pueden necesitar una actualización o sustitución.