Por qué dejé React Native y reconstruí mi app en Flutter

March 18, 2025

Flutter o React Native?
Flutter o React Native?
Disclaimer: Esta es una pieza de opinión.

Desde hace un tiempo, he estado desarrollando una aplicación de seguimiento de gastos. Inicialmente, elegí React Native como framework porque ya tenía experiencia con React y el ecosistema de JavaScript. Sin embargo, después de enfrentar varios problemas, decidí reescribir mi app desde cero con Flutter. En este post, quiero compartir las razones detrás de esta decisión y mi experiencia con ambos frameworks.

Problemas con React Native

Si bien React Native me permitió desarrollar rápidamente una versión funcional de mi app, con el tiempo fui notando ciertas limitaciones que se volvieron difíciles de ignorar:

1. Fragmentación del ecosistema

El ecosistema de React Native depende en gran parte de paquetes de terceros, y muchas veces me encontré lidiando con librerías desactualizadas, incompatibilidades entre paquetes y la incertidumbre de si una librería seguiría recibiendo mantenimiento o no. Cada actualización de React Native traía consigo la posibilidad de romper dependencias críticas, lo que me obligaba a invertir tiempo en solucionar problemas en lugar de avanzar en el desarrollo.

2. Problemas de rendimiento

Aunque React Native ofrece un rendimiento aceptable para muchas aplicaciones, me encontré con limitaciones al trabajar con animaciones y transiciones fluidas. Incluso con librerias y optimizaciones manuales, las animaciones nunca fueron completamente suaves, especialmente en dispositivos Android de gama media o baja.

3. Manejo de versiones y actualizaciones

Actualizar React Native y sus dependencias puede ser una pesadilla. Más de una vez me encontré en una situación en la que actualizar la versión de React Native / Expo rompía múltiples paquetes, lo que me obligaba a hacer pruebas extensivas y buscar soluciones en foros y GitHub. Este problema no es exclusivo de React Native, pero definitivamente es más frecuente de lo que me hubiera gustado.

4. Todavia no es estable

El desarrollo mobile no es algo sencillo, y no existen las balas de plata, por lo que es de esperar que las herramientas tengan cierta inmadurez para manejar los desafíos que se presentan. Sin irnos del punto, React Native todavia no alcanza una versión estable, y aunque Expo nos quiera convencer de lo contrario con su v53, podemos ver que los pasos que se toman no son los mas celebrados por su comunidad.

Todavia no hay un 1.0 a la vista
Todavia no hay un 1.0 a la vista

Por qué elegí Flutter

Antes de seguir, un pequeño disclaimer, esta no es mi primer experiencia con Flutter, recomiendo tomarse el tiempo de investigar las necesidades de cada proyecto previo a elegir un lenguaje o framework para el trabajo.

Dicho lo dicho, vamos a lo nuestro:

Flutter está bueno.
Flutter está bueno.

1. Renderizado nativo y sin dependencias de terceros

A diferencia de React Native, Flutter no depende de un puente para comunicarse con componentes nativos. En su lugar, usa su propio motor de renderizado, lo que significa que las interfaces de usuario son consistentes en todas las plataformas y las animaciones son increíblemente fluidas sin necesidad de hacks ni optimizaciones complejas. Basta de implementar animaciones rezando para que el emulador no muera en el primer render.

2. Un ecosistema más estable y controlado

Flutter proporciona un set de widgets y herramientas oficiales bien mantenidas por Google (o su comunidad!). Esto reduce la dependencia de paquetes de terceros y asegura que los componentes clave sigan funcionando sin problemas con cada actualización. Además, la comunidad de Flutter es muy activa y el soporte en la documentación es excelente.

3. Hot Reload y productividad

Si bien React Native también tiene Fast Refresh, en mi experiencia, el Hot Reload de Flutter es más rápido y confiable. Me permitió iterar sobre la UI de manera instantánea sin necesidad de reiniciar la app constantemente.

4. Mejor rendimiento en Android e iOS

Flutter es simplemente más rápido en términos de renderizado y consumo de recursos. En dispositivos de gama baja, noté una diferencia significativa en la fluidez de la aplicación en comparación con React Native.

Reflexión final

No quiero decir que React Native sea un mal framework; tiene sus ventajas y sigue siendo una excelente opción para muchos proyectos. Sin embargo, para mi caso particular, Flutter significó una experiencia de desarrollo con menor cantidad de roces.

Si estás considerando desarrollar una app multiplataforma, mi consejo es que pruebes ambos frameworks y elijas el que mejor se adapte a tu caso de uso. En mi experiencia, la estabilidad y el rendimiento de Flutter hicieron que la migración valiera completamente la pena.

Ojo, este es mi approach a un analisis de Flutter sobre React Native, pero no quiero dejar de mencionar otras alternativas para el desarrollo de aplicaciones multiplataforma que podrían ser adecuadas según las necesidades de tu proyecto. Acá te dejo los links a todas las alternativas que pude encontrar!

  • Flock - El fork de Flutter por la comunidad.
  • Kotlin Multiplataformas - Un framework muy similar a Flutter por Jetbrains (si, los que hacen IDEs!).
  • Ionic - Framework para apps híbridas con tecnologías web.
  • Tauri - Framework ligero para apps de escritorio con Rust y web.
  • Lynx - El más nuevito y prometedor framework para apps nativas de TikTok.