Glosario · Aplicaciones móviles

React Native

Framework de Meta para construir apps iOS/Android con React y JavaScript. Comparte alrededor del 80% del código entre plataformas y usa componentes nativos (no WebView).

Qué es y cómo funciona

En React Native escribes la interfaz con componentes de React y lógica en JavaScript o TypeScript. Cuando la app se ejecuta, esos componentes se traducen a elementos nativos de cada sistema: un botón o una lista terminan siendo vistas reales de iOS y de Android, no una página web dentro de un contenedor.

Lo que se comparte entre plataformas es sobre todo la lógica de negocio, la gestión de estado, las llamadas a la API y buena parte de las pantallas. Lo que no se comparte aparece cuando necesitas algo muy específico del sistema (una cámara avanzada, un widget, un sensor poco habitual): ahí se escribe un módulo nativo en Swift o Kotlin y se conecta al código JavaScript.

Sobre React Native suele usarse Expo, un conjunto de herramientas y servicios que simplifica la configuración, las compilaciones y el acceso a funciones habituales del dispositivo. Para un proyecto nuevo es el punto de partida más habitual, aunque no es obligatorio.

Por qué importa

Si tu producto ya tiene una web en React, o tu equipo domina JavaScript, React Native permite reutilizar conocimiento, parte de la lógica y hasta algunas librerías. Eso suele traducirse en un único equipo y un único ritmo de desarrollo para las dos tiendas, en vez de dos proyectos paralelos con sus propios calendarios.

Además, al apoyarse en componentes nativos, la sensación de uso se acerca a la de una app nativa en la mayoría de pantallas habituales: formularios, listados, navegación, fichas de producto. Es una opción sensata para apps de negocio, reservas, comercio o gestión interna.

Un ejemplo

Una cadena de clínicas quiere una app para que sus pacientes pidan cita, vean su historial de visitas y reciban recordatorios. Ya tiene una API y un panel web en React. Con React Native, un solo equipo construye las pantallas para iOS y Android, comparte la validación de formularios con la web y solo necesita código nativo específico para la integración con el calendario del teléfono.

Errores y confusiones frecuentes

  • No es «escribir una vez y olvidarte»: siempre queda trabajo específico de cada plataforma (permisos, diseño, publicación, pruebas en dispositivos reales).
  • Los módulos nativos de terceros dependen de que alguien los mantenga; antes de apoyarte en una librería comprueba que tiene actividad reciente y que funciona con la versión de React Native que vas a usar.
  • Subir de versión de React Native puede requerir trabajo en el proyecto; hay que reservar tiempo de mantenimiento y no tratar la app como algo que se entrega y se deja quieto.
Dudas habituales

Preguntas frecuentes sobre React Native

No. Una web empaquetada se muestra dentro de un WebView, un navegador embebido. React Native usa JavaScript para describir la pantalla, pero la dibuja con componentes propios de iOS y Android. La lógica sigue siendo JavaScript, aunque la interfaz que ve el usuario es nativa.

Para muchas apps no: con JavaScript o TypeScript y las librerías existentes se cubre lo habitual. Pero si necesitas una función que ninguna librería ofrece, o depurar un fallo en la capa nativa, alguien del equipo tendrá que moverse con el código de cada plataforma.

Se reutiliza sobre todo lo que no es interfaz: validaciones, modelos de datos, clientes de API y reglas de negocio. Los componentes visuales de una web no se trasladan tal cual, porque en móvil no existen elementos HTML ni CSS como en el navegador.

¿Necesitas aplicarlo en tu proyecto?

Cuéntanos qué quieres conseguir y te decimos, sin compromiso, si React Native tiene sentido en tu caso o si hay una opción mejor.