¿Qué es Flutter y cómo funciona?

| Última modificación: 15 de octubre de 2024 | Tiempo de Lectura: 5 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Qué es Flutter? De las preguntas que más te harás si eres un desarrollador de aplicaciones móviles.

Flutter es, para el programador, de las mejores herramientas para el desarrollo mobile. Aunque la inmensa mayoría de nosotros no conozcamos qué es flutter, supone un gran alivio y un activo importante para el desarrollo nativo de aplicaciones, ya sea con Swift (iOS) y con Kotlin (Android).

¿Por qué es tan popular? Flutter aporta el mejor rendimiento, el mejor resultado estético y acceso completo a todas las funcionalidades de los sistemas operativos. Sin embargo, a veces conviene mirar el punto de vista de la empresa, y aquí la certeza absoluta de antes se tambalea un poco.

Las ventajas ya mencionadas del desarrollo nativo son incuestionables, pero hay un problema: Tener a dos equipos caros haciendo básicamente lo mismo es un coste difícil de justificar, no sólo desde el punto de vista económico, sino operativo: es muy difícil lograr que ambas apps esté a la par en cuanto a funcionalidades.

React Native, Ionic, Cordoba: Todos intentaron y fallaron

Hasta aquí, nada nuevo. Este problema se ha intentado resolver miles de veces en el pasado y el cementerio está lleno: Ionic, Cordoba, Appceleretor y otros muchos. Algunos aún no están en el cementerio, están en la UVI, pero tienen el nicho listo, como ReactNative o Xamarin. 

Parece que el problema no tiene solución, pero hay un recién llegado que parece que podría cambiar esto: Flutter.

¿Para qué comprarte una camioneta cuando puedes hacer esto?
¿Para qué comprarte una camioneta cuando puedes hacer esto?

La mayoría de los cadáveres mencionados tienen dos cosas en común, y posiblemente ahí esté la raíz de su fracaso:

  • Son herramientas “extranjeras” (mayoritariamente web) metidas con calzador en un entorno completamente distinto. Se basan en la idea, errónea, de que hacer un App para la web es lo mismo que una para un móvil y que lo único que cambia es el tamaño de la pantalla.
  • El approach a los kits gráficos es el mismo de reciclaje: o se intentan usar los widgets nativos (lo cual es muy complejo para el creador de la framework) o lo replican con el mínimo denominador común: html y css.

Lo que ambas decisiones demuestran, es una falta absoluta de compromiso con la plataforma de destino, no se crea nada específico y se apaña con piezas prestadas y pegadas con cola de zapatero. Es decir, se está intentado hacer un pulpo injertándole otras cuatro patas a un perro.

El viejo truco de la ñapa para salir al paso lo antes posible.
El viejo truco de la ñapa para salir al paso lo antes posible.

¿Qué es Flutter?

Aunque es incuestionable que hay cierta influencia de la web, al fin y al cabo Dart fue creado en su momento como una alternativa cuerda a Javascript, Flutter es un desarrollo 100% nuevo, diseñado primordialmente para el desarrollo móvil.

Otra de las razones de su superioridad, es (sorprendentemente) que descarta por completo los widgets nativos y los replica desde cero mediante OpenGL (sin ñapas de html / css), usando la framework Skia de Google.

Replicar y mantener actualizados todos los elementos de dos entornos gráficos es una tarea ingente, que sólo una empresa con los recursos de Google podría abordar. Además, es algo tan aburrido que ningún proyecto de código abierto basado sólo en voluntarios podría llevar a cabo. Es el tipo de tarea que nadie haría si no le pagasen y bien.

Interfaces declarativas

Otra característica interesante de Flutter es el approach declarativo a la definición del UI. Se trata de una metodología que aunque tiene una barrera de entrada no desdeñable (cuesta pillarle el truco), permite a la larga crear Apps mucho más complejas sin que la complejidad del código se desborde.

Es de hecho, el nuevo estándar y tanto Apple como Google han copiado dicho approach en SwiftUI y Compose. En muy poco tiempo, independientemente de la plataforma y las herramientas, todos estaremos creando nuestras UIs de forma similar.

Dart: bueno, bonito y barato

Otro de los puntos fuertes del stack de Flutter, es el lenguaje elegido: Dart. Relativamente poco conocido, es un lenguaje sencillo y diseñado para sorprender lo mínimo posible al recién llegado. En poco tiempo te sentirás a gusto si vienes de algún lenguaje OOP clásico y también si vienes de Swift y Kotlin, dados algunos añadidos recientes.

Se trata de una elección muy acertada por parte de Google, ya que se adapta muy bien a la tarea de crear UIs de forma declarativa, y el disponer de una VM muy dinámica, permite cambiar el código en tiempo de ejecución sin recopilar ni volver a arrancar la App. Esto nos permite el famoso “hot-reload”: muchos de los cambios en tu código se ven reflejados de inmediato en la App que estás depurando, sin tener que recopilar.

Es decir, se trata de un lenguaje fácil de aprender, pero que no resulta aburrido y con el que se pueden hacer, si quieres, grandes virguerías.

Además, la VM sólo se utiliza durante el desarrollo. Para desplegar, la aplicación se compila a código nativo ARM y tiene un rendimiento excelente.

¿La muerte del desarrollo nativo?

No, por supuesto que no. Lo que sí es Flutter, es una herramienta más, que en este caso viene para quedarse. Para una app sencilla, tipo CRUD, es posiblemente la forma más barata de salir al mercado en ambas plataformas y con calidad.

🔴 ¿Quieres entrar de lleno al Desarrollo Mobile? 🔴

Descubre el Desarrollo de Apps Móviles Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Desarrollo de Apps Móviles por una semana

Por supuesto que una App más compleja que requiera de una interfaz más estrecha con el hardware del móvil, se hará mucho mejor con Swift y Kotlin. Sin embargo, la mayoría de las apps que hay en el mercado ahora mismo (lamentablemente) se limitan a un CRUD bonito.

Ventajas de Flutter

  • Al ofrecer una calidad nativa, a diferencia de las aplicaciones que solo pueden ser nativas en específico, Flutter se adapta a las diferentes plataformas a partir de estas ventajas.
  • Como Flutter está desarrollado por Google, este ofrece la herramienta Google Material Design y Cupertino de Apple, el cual permite elaborar bajo la misma experiencia e interfaces de las aplicaciones que utiliza el usuario de las propias compañías.
  • Sin duda alguna, el éxito de las aplicaciones depende de la rapidez al momento de cargar y de ser utilizada, por lo tanto, Flutter ofrece una rapidez en su carga por tiempos estimados en menos de un segundo, tanto en plataforma iOS como en Android.
  • En cuanto al desarrollo a la hora de creación de una aplicación o página web, se pueden observar los cambios y efectos del desarrollo en tiempo real al ser programados.

¿Cómo aprender Flutter?

En resumidas cuentas, animaría a cualquier desarrollador mobile, ya sea Android o iOS, a aprender Flutter: es una excelente herramienta para llevar en la mochila.

De hecho, en nuestro Desarrollo de Apps Móviles Full Stack Bootcamp, cuyo plato principal es y seguirá siendo el desarrollo nativo, ya tenemos desde hace un año  un módulo de Flutter.

 

Por último, y si lo prefieres, también puedes iniciarte en el desarrollo de apps con el Curso Gratuito de Desarrollo de Apps Móviles de la plataforma de KeepCoding, donde encontrarás multitud de cursos online con certificado.

Fernando Rodríguez

iOS Developer & Co-Fundador de KeepCoding

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo de apps móviles ios & Android

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado