Aplicaciones móviles

Flutter, React Native o nativo: cómo elegir según criterios

Flutter, React Native y desarrollo nativo comparados en rendimiento, equipo, mantenimiento, funciones del dispositivo y presupuesto para elegir bien.

Equipo de rabbitclipPublicación: 7 min. de lectura

En breve

La elección entre Flutter, React Native y nativo es una decisión sobre si la app se construye para las dos tiendas a partir de una sola base de código o de código separado para cada plataforma y, si es una sola base de código, con qué herramienta. Nativo significa escribir código separado para iOS y para Android y usar las herramientas propias de cada plataforma. Flutter y React Native apuntan ambos a las dos plataformas con código en gran parte compartido; cada uno es un enfoque maduro y muy extendido, creado con ese fin. La elección correcta no sale de una clasificación. Sale de las necesidades del producto, las habilidades del equipo y el plan de mantenimiento.

Este artículo no elogia a ningún bando. Pone los tres enfoques uno al lado del otro con los mismos criterios y explica en qué situación cada uno conlleva menos riesgo. Nuestros artículos sobre cómo crear una app móvil con Flutter y sobre app móvil frente a PWA también tocan el tema; aquí el foco está en cómo se sitúan los tres enfoques de desarrollo unos respecto de otros.

¿En qué se diferencian los tres enfoques?

En el desarrollo nativo, la app de iOS se escribe en el lenguaje y con las herramientas propias de la plataforma, y la de Android en las suyas. Acaba con dos bases de código. Obtiene acceso prioritario a las nuevas funciones de cada plataforma y el vínculo más directo con las capacidades del dispositivo, pero el trabajo se hace dos veces.

Flutter es una herramienta que dibuja ella misma la interfaz con su propio motor de renderizado y usa el lenguaje Dart. React Native se escribe en JavaScript o TypeScript y muestra la interfaz mediante los componentes propios de la plataforma. Ambos buscan publicar en dos tiendas con un solo equipo; se diferencian en cómo se produce la interfaz y en el lenguaje que conoce el equipo.

¿Con qué criterios conviene compararlos?

Para que la elección no se convierta en un debate tecnológico, escriba primero los criterios y puntúe cada uno para su propio producto. Si un criterio es crítico para usted, decide el asunto por buenos que parezcan los demás.

A cada criterio se le hace la misma pregunta: ¿cuán poco riesgo conlleva este enfoque para cubrir las necesidades de este producto? Las respuestas suelen salir no como cifras, sino como una distinción del tipo «cómodo», «requiere cuidado» y «difícil».

  • Equipo: el lenguaje y la experiencia de los desarrolladores que tiene o puede encontrar
  • Funciones del dispositivo: necesidades cercanas a la plataforma, como cámara, sensores, Bluetooth y trabajo en segundo plano
  • Interfaz y animación: propia de la marca y visualmente exigente, o el aspecto estándar de la plataforma
  • Mantenimiento: quién seguirá las actualizaciones de versión y los cambios de bibliotecas de ambas plataformas, y cómo
  • Tiempo y presupuesto: uno o dos equipos, y la urgencia de la primera publicación

¿En qué situación destaca cada enfoque?

Si el producto está muy cerca de la plataforma, por ejemplo con uso intensivo de la cámara y los sensores, trabajo que se ejecuta de forma continua en segundo plano, extensiones para reloj y coche, o necesidad de las funciones más nuevas de la plataforma desde el primer día, lo nativo suele dar menos sorpresas. El coste es mantener dos bases de código y, por lo general, dos equipos.

Si quiere que la interfaz se vea idéntica y propia de la marca en ambas plataformas y el equipo está abierto a aprender un lenguaje nuevo, Flutter es un candidato natural. Si su equipo incluye desarrolladores web que ya conocen JavaScript o TypeScript, React Native es el camino más corto para aprovechar las habilidades existentes, y compartir código y conocimiento entre web y móvil también puede resultar más fácil.

Estas frases describen tendencias generales, no reglas. Se escriben apps exitosas, rápidas y atractivas con los tres enfoques; los problemas suelen venir de una falta de ajuste entre el producto y la herramienta, no de la herramienta. Por eso, antes de decidir, una pequeña prueba que ponga a cada candidato frente a la pantalla o función más arriesgada del producto acorta el debate.

¿Cómo influyen el equipo y el mantenimiento en la elección?

El trabajo no termina cuando se publica la app. Cada año ambas plataformas lanzan nuevas versiones, las bibliotecas cambian y se actualizan las normas de las tiendas. Con herramientas multiplataforma, estos cambios los tienen que absorber tanto la plataforma como la propia herramienta. En nativo, el mismo cambio se hace dos veces en dos bases de código separadas.

El lado humano también importa. Piense en quién sustituiría a la persona que conoce la herramienta elegida si se marchara, y en cuán viva está la comunidad y la documentación de la herramienta. Sopese esto no a ojo, sino según la situación real de su propio mercado para encontrar desarrolladores en ese lenguaje.

  • Quién seguirá las actualizaciones anuales de versión de ambas plataformas
  • Quién resolverá una incompatibilidad de bibliotecas en la herramienta elegida
  • Con qué facilidad se puede sustituir a un miembro del equipo que se va
  • Cuán actualizadas están la documentación y la comunidad de la herramienta
Lea tambiénMonitorización de fallos y rendimiento de una app móvil

¿Qué errores son comunes al elegir una tecnología?

El error más común es dejar la elección en manos de la popularidad o de los argumentos de internet. Una herramienta que funcionó en otra empresa puede no dar el mismo resultado con su equipo y su producto. El segundo es suponer que lo multiplataforma siempre es más barato; una sola base de código reduce el trabajo de desarrollo, pero las partes específicas de cada plataforma y el mantenimiento siguen exigiendo esfuerzo.

El tercero es pensar solo en la primera publicación al decidir. Quién mantendrá la app dentro de tres años suele importar más que la rapidez con que salió la primera versión.

  • Dejar la elección a la popularidad o al debate en internet
  • Suponer que lo multiplataforma es más barato en todos los casos
  • Pensar solo en la primera publicación sin contar el mantenimiento
  • Decidir sin probar la función más arriesgada

¿Cuándo es esta comparación la pregunta equivocada?

Si su producto sobre todo muestra contenido, rellena formularios y apenas necesita funciones como la presencia en las tiendas o las notificaciones, la pregunta real es si debe ser una app móvil o una PWA; uno de los tres enfoques de desarrollo se sigue de esa pregunta. Compruebe primero que el producto necesita de verdad una app.

Si aún está en la fase de la idea, elegir una tecnología también es prematuro. Pruebe primero la idea con un prototipo; la elección será más sana cuando esté claro qué se va a construir realmente. Existen otras opciones, pero entender el razonamiento que hay detrás de estas tres le da también una buena base para juzgarlas.

No hay una única respuesta correcta para Flutter, React Native y nativo. La respuesta correcta sale de las necesidades del producto, las habilidades de su equipo y su plan de mantenimiento. Escriba primero sus criterios, pruebe la función más arriesgada en un pequeño ensayo y cuente el mantenimiento más allá de la primera publicación. Si desea sopesar los tres enfoques para su propio producto, puede concertar una conversación de descubrimiento con rabbitclip.

Preguntas frecuentes

¿Es mejor Flutter o React Native?

En general ninguno es mejor que el otro; uno conlleva menos riesgo según el lenguaje del equipo, las necesidades de la interfaz y el plan de mantenimiento. Los equipos que conocen o quieren aprender Dart y desean una interfaz propia de la marca se inclinan por Flutter, y los que conocen JavaScript, por React Native.

¿Sigue siendo necesario el desarrollo nativo?

Para productos muy cercanos a la plataforma, como las apps que necesitan mucho trabajo con la cámara, los sensores o el segundo plano, y cuando necesita las funciones más nuevas de la plataforma desde el primer día, lo nativo da menos sorpresas. Para muchas apps de empresa no es imprescindible.

¿Es siempre más barata una app multiplataforma?

No. Una sola base de código suele reducir el esfuerzo de desarrollo, pero las partes específicas de cada plataforma, las pruebas y el mantenimiento siguen exigiendo esfuerzo. El coste lo marcan el alcance, el número de integraciones y el plan de mantenimiento, no el nombre de la herramienta.

¿Se puede pasar más tarde de un enfoque a otro?

Se puede, pero supone reescribir la mayor parte de la app. Por eso es más barato elegir con cuidado al principio, probando la función más arriesgada en un pequeño ensayo y contando el mantenimiento.

Compartir

Servicio relacionadoDesarrollo de SoftwareConvertir una idea en un producto que funciona lleva más tiempo del que parece. De aplicaciones web y móviles a sistemas a medida que automatizan sus procesos, construimos software simple y sólido.

Herramientas gratuitas relacionadas

Términos del glosario

Artículos relacionados

Más sobre este tema

Si no sabe por dónde empezar, no pasa nada: está en el lugar correcto.

El proyecto que tiene en mente puede estar ya definido, o ser solo una idea. Las dos cosas valen. En una conversación breve hablamos de dónde está y hacia dónde puede llegar.

Programemos una conversación
Hablemos del proyecto