React Native en 2025

Novedades, cambios y próximos pasos en el desarrollo híbrido

Walter Gandarella • 18 de abril de 2025

A veces nos enamoramos de un lenguaje de programación, pero es inevitable que estos vayan cambiando con el tiempo, ganando más recursos y, ocasionalmente, volviéndose más complejos. Con React Native no fue diferente. Desde su lanzamiento por Meta (entonces Facebook), el framework ha sufrido diversas transformaciones que han moldeado el panorama actual del desarrollo móvil híbrido.

El panorama actual del desarrollo híbrido

Cuando hablamos de desarrollo híbrido, debemos entender que básicamente existen dos grandes vertientes:

1. Desarrollo basado en WebView

La primera vertiente utiliza tecnologías como Cordova, Capacitor y los descendientes del buen y viejo PhoneGap (que, créanlo o no, todavía hay quienes apuestan por su regreso). Este enfoque utiliza HTML, CSS y JavaScript, y lo que hace el framework es levantar una WebView, que funciona como un «navegador» dentro de la app.

¿La ventaja? Programas exactamente como en la web. ¿La desventaja? Toda la comunicación con recursos nativos (cámara, GPS, sensores) se vuelve más compleja que en otras alternativas. Es como intentar hacer que un pato nade en tierra firme: funciona, pero no es su entorno natural.

2. Compilación a código nativo

Por otro lado, tenemos frameworks como React Native y Flutter, que compilan nuestro código a algo que el sistema operativo entiende directamente.

React Native utiliza componentes específicos que se compilan a componentes nativos equivalentes. Por ejemplo, un <View> en React Native se convierte en una UIView en iOS y una ViewGroup en Android.

Flutter sigue un enfoque diferente. Mientras codificamos visualmente con widgets, Flutter no compila a componentes nativos: funciona como si la app fuera una gran pantalla en blanco y dibuja los componentes en el canvas. Es como si, en lugar de pedir prestados los muebles de la casa, llevara sus propios muebles y los colocara allí.

Esto tiene implicaciones interesantes. Por ejemplo, cuando sale una nueva versión de iOS con cambios en los componentes visuales nativos, una app de React Native adopta automáticamente esos cambios, ya que utiliza los componentes nativos. En cambio, con Flutter, hay que esperar a que salga la nueva versión del paquete Cupertino (que imita la interfaz de iOS), actualizar el código y volver a publicar.

React Native vs Flutter: la eterna batalla

Seamos sinceros: este debate sobre cuál es mejor ya ha generado más hilos en X que las discusiones de política en grupos familiares de WhatsApp. Y, al igual que en las discusiones familiares, muchas veces es una cuestión de gusto y contexto.

Flutter nació a partir de un motor de juegos (Skia, más tarde Impeller), por lo que tiene un enfoque distinto. Mientras React Native pide componentes al sistema operativo (como botones, campos de texto y calendarios), Flutter dibuja píxel por píxel en la pantalla.

Esto le da a Flutter un mayor control sobre lo que sucede visualmente. No necesita pedir componentes al sistema operativo: simplemente dibuja lo que necesita. Sin embargo, esto conlleva desafíos, como problemas de responsividad. Si diseña una app pensando en un teléfono y luego la estira para una tablet o un dispositivo plegable, puede encontrar problemas si no lo planifica bien.

La elección entre React Native y Flutter se resume muchas veces en:

  • ¿Cuál es su objetivo final?
  • ¿Cuál es su experiencia inicial?

Si busca experiencias visuales más elaboradas, con un control refinado de animaciones y efectos como el parallax, Flutter puede ser más fácil. Por otro lado, si ya trabaja con React en la web, la transición a React Native será más natural.

También cabe mencionar a KMP (Kotlin Multiplatform), que está llegando «como en ese meme de Monty Python del hombre corriendo que algún día llegará». Lleva un tiempo, pero es una alternativa prometedora que combina el poder de Kotlin con el desarrollo multiplataforma.

La Nueva Arquitectura de React Native

Una de las grandes evoluciones recientes en React Native es la llamada «Nueva Arquitectura». Este cambio vino a solucionar uno de los mayores problemas que existían con React Native.

Cómo funcionaba antes

Cuando escribimos código en React Native, usamos JSX (o como algunos bromean, «PHP socialmente aceptado»). La parte visual y de componentes se compila a código nativo, pero la lógica de negocio se ejecuta en una VM JavaScript dentro de la app.

Para la comunicación entre JavaScript y el código nativo, existía (y en parte aún existe) una pieza llamada Bridge (Puente). Era a través de ella que el código JavaScript solicitaba recursos al sistema operativo.

El problema? Este puente era:

  1. Unidireccional: JavaScript enviaba solicitudes y recibía respuestas a través de callbacks.
  2. Asíncrono: lo que generaba complejidades y posibles problemas de rendimiento.

Qué cambió con la Nueva Arquitectura

En la Nueva Arquitectura de React Native, ¡este puente murió! Ahora, JavaScript puede comunicarse de forma síncrona con el código nativo, sin callbacks complejos, y la comunicación pasó a ser bidireccional.

La implementación fue bien pensada. En lugar de hacer un cambio brusco (un breaking change), Meta introdujo la nueva arquitectura como opcional, desactivada por defecto. Ahora ya viene activada por defecto, pero puede desactivarla si su app depende de plugins que aún no se han adaptado.

Y hablando de plugins, muchos ya se han adaptado a la nueva arquitectura, pero algunos desarrolladores de plugins más complejos han declarado que no migrarán. Así que, por ahora, vivimos en un mundo híbrido donde es posible elegir entre activar o no el «modo Bridge» para diferentes partes de la app.

El universo Expo: un punto de inflexión

Cuando hablamos de React Native, es imposible no mencionar Expo. Para muchos desarrolladores, Expo es la puerta de entrada al mundo React Native, y no es por casualidad.

Expo funciona como un superconjunto de herramientas que facilita enormemente el desarrollo. Proporciona acceso simplificado a recursos como cámara, Bluetooth, mapas y mucho más. Y con el tiempo, Expo ha ido añadiendo cada vez más funcionalidades por defecto.

En 2019, cuando se quería acceder a código nativo, era necesario hacer el «eject» del proyecto Expo, lo que significaba abandonar parte de la comodidad que Expo proporcionaba. Hoy en día, este proceso ha evolucionado mucho y rara vez es necesario salir del ecosistema Expo.

Una de las grandes ventajas de Expo es su comunidad activa. Si encuentras un bug (lo que ocurre con cualquier tecnología), el equipo de Expo suele ser extremadamente receptivo. No es raro reportar un problema en detalle y recibir un parche en cuestión de horas o días.

Con el paso del tiempo, algunas bibliotecas han sido descontinuadas o incorporadas en Expo. Por ejemplo, la función de lectura de códigos QR que antes proporcionaba Expo Barcode Scanner ahora está integrada en Expo Camera. Lo mismo ocurrió con Firebase: antes era necesario instalarlo a través de React Native Firebase, pero ahora existe Expo Firebase (aunque con soporte limitado a algunas funcionalidades).

Los desafíos de las actualizaciones

Un tema recurrente en el desarrollo móvil es el desafío de las actualizaciones. Aunque Expo, por ejemplo, solo soporta oficialmente las últimas tres versiones, no es raro encontrar proyectos ejecutando versiones mucho más antiguas.

Actualizar un proyecto React Native puede ser un proceso laborioso, especialmente si está varias versiones atrasado. Es como construir una casa: siempre aparecen problemas inesperados. El terreno puede estar desnivelado, o descubres que tienes que rehacer parte de los cimientos.

Cuando actualizas:

  • Algunas bibliotecas pueden dejar de funcionar.
  • Otras pueden haber sido descontinuadas.
  • Algunas funcionalidades pueden haberse incorporado en otras bibliotecas.
  • Pueden surgir dependencias cíclicas, donde una biblioteca depende de una versión más reciente que otra no soporta.

El proceso rara vez es lineal. Lo que parece una actualización de una semana puede extenderse fácilmente por un mes, especialmente en proyectos grandes.

Y no olvidemos que React Native depende de los SDKs nativos de Android e iOS, que también están en constante evolución. Cuando Android Studio actualiza y cambia la versión de Java requerida, o cuando Apple migra de CocoaPods a Swift Package Manager, estos cambios también afectan al desarrollo en React Native.

¿Por qué las empresas eligen React Native?

La decisión de utilizar React Native (o cualquier framework híbrido) a menudo viene de consideraciones que van más allá de lo puramente técnico.

Reutilización de código

La promesa del desarrollo híbrido es «escribir una vez, ejecutar en cualquier lugar»: desarrollas el código una vez, presionas un botón y ¡voilà! Tu app funciona tanto en iOS como en Android.

En la práctica, no es tan simple. Aún hay que lidiar con las peculiaridades de cada plataforma, especialmente al interactuar con APIs nativas. Pero aun así, la reutilización de código es significativamente mayor que desarrollar apps nativas separadas.

Aprovechamiento de habilidades existentes

Si tu empresa ya tiene desarrolladores de React trabajando en el frontend web, la curva de aprendizaje para React Native es mucho menor que aprender Swift/Objective-C o Kotlin/Java desde cero.

React Native fue diseñado específicamente para facilitar la vida a quienes vienen del mundo web. Incluso el sistema de estilización está inspirado en CSS (aunque utiliza Yoga bajo el capó), con propiedades similares. Si conoces React para web, gran parte de tu conocimiento es transferible.

Ecosistema y comunidad

El ecosistema React ya es enorme, y React Native se beneficia de ello. Como muestra consistentemente el Stack Overflow Developer Survey, JavaScript y React están entre las tecnologías más populares, lo que significa una gran base de programadores y recursos disponibles.

Grandes empresas como Tesla, Shopify y varias del sector de las criptomonedas utilizan React Native en producción, algunas incluso con repositorios de código abierto que sirven como referencia y recurso de aprendizaje.

El mercado laboral para programadores React Native

El mercado para programadores React Native está en auge, especialmente para profesionales con experiencia. En Europa, por ejemplo, hay muchas oportunidades, aunque la mayoría busca desarrolladores seniors con al menos 3-4 años de experiencia específica en React Native.

Para quienes están empezando, la puerta de entrada suele ser a través de React para web. Como hay proporcionalmente más aplicaciones web que móviles (no todo sitio necesita una app), hay más oportunidades iniciales en desarrollo web.

Una estrategia común es:

  1. Aprender HTML, CSS y JavaScript (la base de todo).
  2. Aprender React para web.
  3. Conseguir un empleo como desarrollador React.
  4. Migrar a React Native cuando surja la oportunidad.

TypeScript, aunque opcional, se utiliza cada vez más tanto en React como en React Native, y en algún momento de tu carrera probablemente tendrás que aprenderlo, quieras o no.

Consejos para quienes empiezan con React Native

Si estás dando tus primeros pasos con React Native, aquí tienes algunos consejos valiosos:

1. Entiende primero la base

Antes de sumergirte en React Native, asegúrate de entender bien:

  • HTML, CSS y JavaScript.
  • Cómo funciona React para web.

Esto te ayudará a distinguir qué es del «core» de React y qué es específico de React Native, lo que facilita mucho la resolución de problemas.

2. Construye proyectos para tu portafolio

Crear proyectos es la mejor forma de aprender y demostrar tus habilidades. Algunos recursos útiles:

  • Sitios como Dribbble, que proporcionan diseños que puedes implementar.
  • Prueba diferentes tecnologías en cada proyecto (Firebase en uno, Supabase en otro, etc.).
  • Documenta bien tus proyectos en GitHub con READMEs detallados.

3. Mantente actualizado con el ecosistema móvil

Sigue lo que está pasando en el mundo móvil en general:

  • Qué está haciendo Apple con iOS (lanzamientos anuales en septiembre).
  • Novedades de Google para Android (eventos como Google I/O).
  • Explora bibliotecas populares del ecosistema (Firebase, Expo, etc.).

4. Sé flexible en las oportunidades iniciales

Si estás empezando, no rechaces oportunidades solo porque no son exactamente lo que buscas:

  • Un puesto de desarrollador web puede ser un excelente punto de entrada.
  • Las empresas más pequeñas a menudo prefieren soluciones híbridas por cuestiones de coste.
  • Las pasantías pueden ser una gran puerta de entrada con una barrera más baja.

5. Invierte en redes sociales profesionales

  • Mantén tu GitHub activo con commits regulares.
  • Comparte tus proyectos y aprendizajes en LinkedIn.
  • Publica desafíos que hayas completado o problemas que hayas resuelto.

¿Entonces, animado con React Native?

React Native sigue evolucionando y se mantiene como una de las principales opciones para el desarrollo móvil híbrido en 2025. La Nueva Arquitectura resolvió problemas fundamentales, el ecosistema Expo hizo el desarrollo más accesible, y la compatibilidad con el conocimiento de React para web facilita la entrada de nuevos desarrolladores.

Como ocurre con cualquier tecnología, hay desafíos, especialmente relacionados con actualizaciones y compatibilidad con bibliotecas de terceros. Pero la comunidad activa y el apoyo corporativo de Meta garantizan que React Native seguirá siendo relevante durante mucho tiempo.

Si estás considerando adentrarte en este mundo, recuerda que el camino más común es a través de React para web, pero con dedicación y proyectos en tu portafolio, es posible encontrar oportunidades directamente en el desarrollo móvil.

Al final del día, como decimos en el mundo de la tecnología, ¡depende! La elección entre React Native, Flutter o desarrollo nativo siempre dependerá de tu contexto, objetivos y de las habilidades que ya tienes o estás dispuesto a desarrollar.

Y recuerda: independientemente del lenguaje que elijas, las facturas seguirán llegando. Así que elige algo que te guste y que tenga demanda en el mercado!


Últimos artículos relacionados