spinner

¿Es Flutter el framework del futuro?

En este post vamos a ver cómo incorporar Flutter en una aplicación que ya se encuentra en producción, repasando las características del lenguaje, interoperabilidad, y el presente y futuro de este framework de Google.

Flutter es un framework de desarrollo creado por Google y está enfocado a realizar aplicaciones móviles para las plataformas Android, iOS o Web. Desde BBVA Next Technologies hemos trabajado con AddToApp para conectar el código Flutter con nuestras aplicaciones existentes.

Haciendo alguna comparativa con otros Frameworks similares como es React Native, podemos apreciar que el rendimiento que tiene Flutter es muy superior. Como se puede apreciar en las imágenes inferiores, el framework de Google no necesita de un proxy o bridge como si lo necesita React Native. Si quieres saber más en detalle, en este artículo nuestro compañero Chema Rubio, profundiza más en este tema. En este post veremos cómo incorporar Flutter en una aplicación que ya está en producción.

Flutter-1Flutter-2

Dart, un lenguaje sencillo al que es fácil adaptarse

El lenguaje de programación que utiliza Flutter es Dart, un lenguaje de programación open source creado por Google en el año 2011, es un lenguaje que tiene una curva de aprendizaje muy baja, ya que si vienes de lenguajes orientados a objetos como C++, C# o Java, va a ser muy sencillo adaptarte y hacerte con el manejo del lenguaje en pocos días. Si es cierto que si nos queremos adentrar en Dart y estamos utilizando lenguajes como Kotlin o Swift empezar a desarrollar con Dart nos puede dar la sensación de que estamos dando un paso atrás ya que estos lenguajes son más modernos y funcionales.

Interoperabilidad, el objetivo a perseguir

Si a día de hoy preguntamos quién utiliza Java para desarrollar nuevas funcionalidades en Android, probablemente veamos un porcentaje muy bajo de desarrolladores que siguen utilizando este lenguaje de los 90. La mayoría de los desarrolladores ha optado por desarrollar sus nuevas funcionalidades con el lenguaje desarrollado por JetBrains, Kotlin. Algo similar ocurre con el ecosistema de la manzana y es que son muy pocos desarrolladores los que siguen utilizando Objective-C en su día a día. Esto se debe a varios factores, uno de ellos es que ambos lenguajes son mucho más modernos y sencillos de usar, pero un punto que creo que ha sido clave para que un alto porcentaje de los proyectos que se desarrollan se están codificando en Swift y Kotlin, tiene que ver con la interoperabilidad que existe entre Kotlin y Java, y Swift y Objective-C. Si esto no hubiese ocurrido creo que pocos desarrolladores nos hubiésemos aventurado a tirar todos nuestros desarrollos y comenzar nuevos proyectos para poder integrar los nuevos lenguajes, por lo que un punto interesante será ver cómo de interoperable va a ser Flutter con Android y con iOS.

Flutter-3

Este es uno de los puntos fuertes en los que hemos querido trabajar desde BBVA Next Technologies, el reto que teníamos por delante era el de añadir funcionalidades implementadas en Flutter dentro de aplicaciones iOS y Android que ya están desarrolladas y puestas en producción. Para ello hemos trabajado con AddToApp lo que nos ha permitido conectar nuestro código Flutter con nuestras aplicaciones existentes.

Para poder comunicar todas las nuevas funcionalidades desarrolladas en Flutter con nuestra aplicación ya existente lo hemos hecho a través de canales bidireccionales que nos permiten enviar cualquier dato desde Flutter hasta nuestra aplicación y viceversa.

Como podéis observar con esta solución no se consigue tener la misma interoperabilidad que hay entre Java y Kotlin, o Swift y Objective-C, pero sí que nos permite poder dotar de funcionalidades desarrolladas en Flutter a nuestras aplicaciones que actualmente tenemos desarrolladas en producción. Esto es algo muy importante para que los desarrolladores nos animemos a integrar y empezar a utilizar este framework.

Presente y futuro

Otro escenario en el que Flutter es un gran protagonista es en el prototipado de aplicaciones, aquí se abre un gran abanico lleno de posibilidad para las startups y proyectos piloto, puesto que a día de hoy con Flutter podemos tener una aplicación con un rendimiento muy bueno en pocos pasos y disponible en ambas plataformas.

Para proyectos más complejos Flutter todavía necesita madurar más. Como comentaba al principio del artículo es un framework muy joven al que le falta mucho camino por recorrer. Si miramos atrás y analizamos proyectos Android o iOS de hace 5 o 6 años, veremos proyectos con clases que tenían infinitas líneas de código, nada de arquitecturas basadas en SOLID, por supuesto la cobertura de test era nula y cuando nos hablaban de inyección de dependencias, programación reactiva o corrutinas nos echábamos las manos a la cabeza. Flutter también se tiene que ir adaptando a todo esto, y aunque lleva un ritmo muy bueno y la comunidad está aportando de forma increíble, necesita que se establezcan y maduren todo este tipo de conceptos.

En este gráfico se puede ver el número de vistas de preguntas de StackOverflow etiquetadas con cada uno de los cuatro marcos de trabajo más populares de IU a través del tiempo, como se puede apreciar, Flutter está creciendo de manera asombrosa.

Flutter-4

Desde BBVA Next Technologies llevamos un tiempo experimentando con este framework de Google y la verdad que no deja de sorprendernos el potencial que tiene, quizás en un futuro podamos tener aplicaciones más complejas en las que la parte visual esté desarrollada en Flutter y para toda la lógica de negocio quizás sea interesante apostar por Kotlin Multiplatform.

Algo que puede potenciar mucho el uso de Flutter es Fucsia, si finalmente este nuevo sistema operativo en el que está trabajando Google ve la luz, es probable que Flutter de un salto de gigante posicionándose como uno de los principales lenguajes para desarrollar nuevas aplicaciones para este sistema operativo.

Fuente de imagen principal: Freepik

Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de BBVA Next Technologies.

¿Quieres saber que más cosas hacemos en BBVA Next Technologies?