Artículos

¿Por
_
qué
_
Flutter
_
para
_
desarrollar
_
apps
_
a
_
partir
_
de
_
ahora?
_
(Cuando
_
todo
_
es
_
un
_
widget)

Desarrollo app  ·  Software a medida

Google ha creado una forma más sencilla de desarrollas apps. Analizamos qué es exactamente y cuáles son las principales características y ventajas que hacen que este framework sea tan interesante para desarrollar aplicaciones multiplataforma con rendimiento nativo.

Hace poco más un lustro la pregunta que hacían a los consultores quienes buscaban una aplicación app era si debía hacerse en nativa o en híbrida, y la respuesta era ¿por qué no probamos con React Native?

React Native es la tecnología impulsada por Facebook que permite desarrollar aplicaciones nativas utilizando javascript. Su principal virtud es que permite programar aplicaciones para iOS y Android con un único código de programación.

Cinco años más tarde la pregunta es directamente ¿Por qué no lo hacemos en Flutter? Flutter es el nuevo framework, o marco de trabajo para desarrolladores, implementado por Google que, al ser multiplataforma, permite desarrollar aplicaciones para móvil, web, escritorio y embebidas.

«Flutter es el kit de herramientas de interfaz de usuario de Google para crear aplicaciones estéticas compiladas de forma nativa para dispositivos móviles, web, de escritorio y embebidas, a partir de una única base de código»

La forma de desarrollar apps está cambiando

Según una encuesta realizada a 31.743 desarrolladores de todo el mundo entre 2019 - 2021 por Jetbrains y recogida por Statista, Flutter es el marco móvil multiplataforma más popular utilizado por desarrolladores globales. La encuesta concluye que el 42 por ciento de los desarrolladores de software usaban Flutter. En general, aproximadamente un tercio de los desarrolladores de dispositivos móviles utilizan tecnologías o marcos multiplataforma; el resto de los desarrolladores móviles utilizan herramientas nativas.

Statistic: Cross-platform mobile frameworks used by software developers worldwide from 2019 to 2021 | Statista
Fuente: Statista

Como observamos en el gráfico, en los tres últimos años Flutter ha sido el único marco de trabajo que ha crecido en cuanto a uso y en 2021 ha superado a React Native, que no solo se ha visto sobrepasado por el primero, sino que ha retrocedido un 5% en cuanto a uso entre los desarrolladores.

La encuesta cobra mayor relevancia cuando sabemos que la hace JetBrains, el creador de Kotlin, uno de los lenguajes, junto a Swift, más modernos y funcionales de los existentes y que además han conseguido hacerse un hueco en el mercado gracias a la interoperabilidad con Java en el caso de Kotlin y con Objective-C en el de Swift.

Ese creciente interés por Flutter lo demuestra también la diferencia que se está dando en términos de búsqueda en Google Trends entre React Native (en rojo) y Flutter (en azul). En la imagen se ve la evolución en los 12 últimos meses. Entrando en el enlace superior podemos ver también el desglose comparativo por región.

¿Tienes un proyecto app en mente? En Cuatroochenta convertimos tus necesidades en soluciones tecnológicas intuitivas, seguras y de máxima calidad.

Contacta con nuestro equipo

¿Qué hace a Flutter diferente?

Sobre todo una estrategia basada en widgets para programar.

Tanto en los sistema operativos de escritorio (Windows, los reincorpora en su versión 11, pero sin soporte de terceros) como móviles (Android e iOS), los widgets son una forma muy práctica de previsualizar información concreta que contiene una aplicación instalada en nuestro dispositivo, sin necesidad de acceder a la propia aplicación.

Esa misma filosofía se ha aplicado a la hora de programar en Flutter, cada botón y texto mostrado es un widget, con diferentes propiedades que se pueden modificar y con la posibilidad de estar anidados entre ellos. Esto aporta mucha flexibilidad, aunque por contra puede conllevar un excesivo anidamiento del código, que provoca que la lectura del código sea más compleja, algo que no debe preocupar al usuario, aunque debe ser tenido en cuenta por el programador.

Por otro lado, como indica la digital guide de IONOS, las funciones integradas con las que cuentan les permiten interactuar entre sí y reaccionar a cambios de estado externos, mediante las funciones integradas. Por su parte, los widgets existentes, “se corresponden con los diseños de Android e iOS o las aplicaciones web convencionales. Si se desea, estos widgets se pueden ampliar con funciones adicionales o se pueden crear widgets propios que se pueden combinar fácilmente con los ya existentes”, afirman.

Agregar Flutter a la aplicación existente

Otras de las ventajas que ofrece Flutter, y que ha hecho que departamentos de desarrollo como el del BBVA hayan decidido apostar por esta tecnología, es la posibilidad de añadir funcionalidades implementadas en Flutter dentro de aplicaciones iOS y Android que ya están desarrolladas y puestas en producción, el conocido como AddToApp.

Como indican desde la propia Flutter, “Flutter se puede integrar en su aplicación existente poco a poco, como una biblioteca o un módulo. Luego, ese módulo se puede importar a su aplicación de Android o iOS para representar una parte de la interfaz de usuario de su aplicación en Flutter”.

Otro caso interesante es el de NUBBANC, una Fintech que se define como “el banco digital independiente más grande fuera de Asia” que también optó por Flutter para desarrollar aplicaciones móviles, partiendo de experiencias previas nativas y en React Native. En este artículo nos cuentan cómo lo hicieron proporcionando criterios detallados para tomar su decisión y una hoja de ruta para escalar con Flutter.

Otro ejemplo de cómo el ecosistema está creciendo es Amazon (AWS), principal proveedor de servicios en la nube del mundo, que está apostando por seguir mejorando la biblioteca Amplify for Flutter, que facilita la transición sin problemas para aplicaciones móviles que utilizan los servicios de AWS.

Por su parte Toyota, el mayor fabricante de coches del mundo en 2020, ha anunciado el pasado mes de marzo de 2021 que el software con el que interactúa el conductor y los pasajeros será creado con Flutter y Dart.

En este vídeo Daniel Hall, diseñador jefe global de UX, habla sobre diseño de infoentretenimiento y su relación con Flutter para Toyota.


Cuatroochenta también ha apostado por esta tecnología en aplicaciones diversas como la reserva de espacios para FAMA y CheckingPlan. Además, con la integración de Develapps en Cuatroochenta se suma un valioso expertise en el uso de Flutter y por extensión en Dark, pues la compañía cuenta con una dilatada experiencia en el desarrollo con Flutter creando aplicaciones de éxito.

Un ejemplo sería la aplicación Teika (iOS, Android) que posibilita la gestión y el pago en las máquinas automáticas de alimentación, bebidas y café que Teika tiene en aeropuertos, hospitales, universidades, empresas, estaciones de autobús, tren o metro. Se instala y se puede recargar el saldo de distintas formas: en la misma máquina, por medio de tarjeta de crédito o con Bizum. Una vez recargada, el pago se efectúa con el dispositivo contact less del móvil o de cualquier soporte vinculado o enviando saldo a la máquina. La app de Teika también incorpora el registro de todos los movimientos y la posibilidad de solicitar recibos de las compras realizadas en las máquinas de vending Teika.

Por su parte Sergio Aguado, CIO y socio fundador de Cuatroochenta, lo tiene claro “Gracias a Flutter, es la primera vez que se plantea una opción seria para que una aplicación móvil, desktop y web se desarrollen con una misma base de código. Este es el principal potencial de Flutter y es lo que, en mi opinión, representa el gran salto cualitativo: el hecho de tener su propio lenguaje y tener control sobre él, el hecho de montar todo un motor de renderizado y no utilizar la base de cada plataforma como sí hace React Native, lo que permite tener un time to market mucho más rápido para mejoras multiplataforma, pues no dependes de terceros”.

«Es la primera vez que de verdad hay un motor multiplataforma. Quizás la gente no se da cuenta del potencial que están gestando pero en 1-2 años cuando la parte web la mejoren en rendimiento de carga se va a comer básicamente a React Native, a nativo…»

Sergio Aguado. CIO y socio fundador de Cuatroochenta

La lista es más larga pero estos ejemplos dan idea de cómo las empresas se han sumado a la comunidad existente y están aportando recursos para que el proyecto siga creciendo.

Fuchsia, un sistema operativo modular y con Flutter

Fuchsia es el nuevo sistema operativo de Google. Algunos afirmaban que sería el sucesor de Android, aunque ahora parece que hay división de opiniones entre quienes piensan que será el S. O. de los “dispositivos conectados”, es decir el sistema operativo IoT de Google (para empezar a serlo está sustituyendo a los Cast Google en los Nest Hub de primera generación p.e.), y quienes se decantan hacia las aplicaciones de escritorio después de que Google esté intentando que su conocido navegador Chrome al “completo” trabaje en Fucsia OS.

Tanto la interfaz de Nest como la de Fucsia OS están basadas en Flutter, por lo que tanto Dart como Flutter se redimensionarán y pasarán a tener un alto potencial en el ámbito de los dispositivos IoT, teniendo en cuenta las estimaciones de Cisco que indican que “Dentro de la categoría de conexiones M2M (también se conoce como IoT), las aplicaciones para el hogar conectado tendrán la mayor participación y el automóvil conectado será el tipo de aplicación de más rápido crecimiento. Las aplicaciones para hogares conectados tendrán casi la mitad o el 48 por ciento de la participación de M2M para 2023 y las aplicaciones para automóviles conectados crecerán más rápido con una tasa compuesta anual del 30 por ciento durante el período de pronóstico (2018-2023).

Otro aspecto relevante es que el Kernel del Fuchsia no estará basado en Linux. Dispondrá de un microkernel propio llamado Zircon así como un pequeño conjunto de servicios, controladores y bibliotecas necesarios para su funcionamiento.

Quizá lo más relevante es que todo esto nos está conduciendo hacia una nueva forma de hacer de Google del que da cuenta el siguiente párrafo extractado de Digital Guide Ionos: “Con el concepto modular de la aplicación de Fuchsia, Google cambia el enfoque de las aplicaciones a las acciones y el contenido. En lugar del sistema operativo clásico de las aplicaciones usadas en la actualidad, con Fuchsia OS serán los componentes los que realizarán las tareas en las llamadas stories, que acceden a los recursos que necesitan mediante módulos”.

Flutter se está posicionando como uno de los grandes marcos de desarrollo de aplicaciones multiplataforma. Si además Fuchsia consigue una alta implantación estamos posiblemente frente al framework de referencia de los próximos años que permitirá la programación de aplicaciones de forma rápida y efectiva.