¿Qué es Flutter?: Características y funcionalidades
Flutter es un nuevo y potente SDK creado por la compañía Google que permite crear apps móviles multiplataforma nativas, es decir permite escribir el código una sola vez y la aplicación puede ejecutarse tanto en iOS como en Android.
Características principales de Flutter:
Creación de apps multiplataforma nativas
Hay una gran diferencia en la forma de crear aplicaciones nativas en Flutter a como se hace en otros frameworks como por ejemplo React Native o NativeScript, existe una diferencia de arquitectura con respecto a estas plataformas.
Hay que decir que cuando creamos una app con React Native o NativeScript, estamos en desventaja con respecto a las apps creadas completamente nativas, es decir para aplicaciones creadas específicamente para iOs O Android.
Con Flutter las apps que creamos están un poco por detrás de las aplicaciones completamente nativas pero muy por delante de las aplicaciones creadas con React Native o NativeScript.
Utiliza Dart
Es un lenguaje de programación para escribir las aplicaciones que inicialmente fue creado para sustituir a Javascript, en Flutter aunque se escribe en Dart, ese lenguaje de Dart es compilado a lenguaje nativo ARM.
Algo que me gustaría señalar, es que debido a que Flutter refresca el árbol de vistas para cada nuevo frame, crea muchos objetos que pueden vivir sólo durante un frame.
Afortunadamente, Dart utiliza la recolección basura generacional que es muy eficiente para este tipo de sistemas, porque los objetos son relativamente baratos.
Además, la asignación de objetos se puede hacer solo con un puntero que responde con rapidez, esto ayuda a evitar el sutter de la interfaz de usuario.
Otro punto importante, es que Dart también tiene un compilador de tree shaking (eliminación de código muerto), que sólo incluye el código que necesitas en tu app.
También puedes usar una gran biblioteca de widgets algo que siempre hay que valorar positivamente.
¿Necesitas un App o un desarrollo web? Contacta con nosotros
Motor propio renderizado basado en Skia
Una de las principales características de Flutter es que no utiliza los widgets que ya vienen en los móviles como lo hacen React Native o NativeScript, Flutter ha ido más allá y ha creado un motor propio renderizado basado en Skia por lo que no utiliza Web Wiew ni los OEM Widgets de los dispositivos.
Gran librería de Widgets
Este es un apartado en el que Flutter ha trabajado bastante bien, lo primero que se observa cuando se empieza ha trabajar con esta herramienta, es que uno tiene al alcance de su mano todos los controles que necesita.
Por la forma en la que está distribuido Flutter que todo es un Widget, trabajar resulta muy fácil para el usuario.
Hot Reload
Esta es otra de las características destacables de Flutter, esta funcionalidad permite al usuario hacer cambios en el programa, se actualiza y ya se ven los cambios en la aplicaciones móviles, esto adelanta muchísimo el trabajo.
El término hot reload, hace referencia a la rápida recarga en caliente, esta funcionalidad permite hacer un cambio en una app en Flutter mientras se está ejecutando, recargando el código de la aplicación que ha cambiado y dejando que continúe desde donde la dejaste, todo ello en menos de un segundo.
Si tu app encuentra un error, en la mayoría de los casos puedes corregirlo para luego continuar como si el error nunca hubiera pasado, el proceso es rápido incluso cuando tienes que hacer una recarga completa.
Compatibilidad
Un aspecto a valorar en Flutter es la compatibilidad, en este sentido un punto que hay que destacar es que gracias a que los widgets y el renderizador para esos widgets son parte de tu aplicación y no de la plataforma, no vas a necesitar bibiliotecas compact.
Las appsvan a funcionar de la misma forma en las versiones recientes del sistema operativo ( iOS 8.0 y posteriores y Android Jelly Bean y posteriores).
Esto hace que se reduzca la necesidad de probar apps en versiones anteriores del sistema operativo, también es posible que sus apps funcionen en futuras versiones del sistema operativo.
Hay que decir que existe cierta controversia en relación a que Flutter no utiliza los widgets nativos de la plataforma.
Por ello algunos usuarios se preguntan si va a llevar tiempo que los widgets sean actualizados cuando cambie la apariencia de un widget existente o cuando salga una versión nueva de Android o IOS que soporte un nuevo tipo de widget.
Sobre este particular me gustaría señalar lo siguiente:
- Google es un usuario interno de Flutter, gracias a ello el usuario tiene un incentivo para actualizar los conjuntos de widgets lo más cerca de los widgets de la plataforma actual.
- Google no es el único usuario de Flutter para mantener los widgets actualizados, los widgets de Flutter son muy personalizables, por lo que cualquiera puede actualizarlos.
- Los widgets son parte de tu app, por ello un widget nunca va a cambiar desde el fondo, tampoco va a hacer que la aplicación se visualice mal.
- Por último otro punto a favor es que puedes puedes escribir tu app para que use el nuevo widget, también en versiones de SO más antiguas.
Eficiencia: Es cierto que Flutter no tiene comunidades tan amplias como NativeScript, Ionic o React Native, sin embargo es indudable que este SDK, es más rápido y eficiente que sus competidores.
Hay que decir que pese a que sus competidores cuentan con más recursos como tutoriales, cursos etcétera, no obstante, los recursos disponibles en Flutter están creciendo a pasos agigantados conforme la plataforma se va haciendo más popular.
Flutter es el Framework oficial de desarrollo para Fuchsia
Esta característica es lo que va a hacer que Flutter y Dart, el lenguaje que se utiliza para programar en Flutter, sea una sensación en todo lo relacionado con el desarrollo móvil.
Lo que hace de Flutter una herramienta con la que pasar al siguiente nivel en el desarrollo móvil, es el hecho de que es el Framework oficial de desarrollo para Fuchsia.
Si no sabes que es Fuchsia, decirte que se trata del nuevo sistema operativo que está desarrollando Google.
Google ha decidido crear un sistema operativo desde cero, este sistema operativo pretende sustituir a Android, no se trata de un proyecto efímero del gigante de Internet, estamos ante un movimiento serio que tiene la clara intención de sustituir a Android.
No es algo que se vaya hacer ahora mismo, las previsiones dicen que Fuchsia saldrá dentro de tres o cuatro años.
Lo interesante de todo esto para los usuarios que se dedican a crear aplicaciones en Flutter, es que se trata de aplicaciones nativas para Fuchsia, por ello los desarrolladores y programadores que empiecen a trabajar con esta herramienta están apostando por el futuro.
Además hay que destacar que Flutter es multiplataforma porque se ejecuta en arm y en x64, por ello no hay que descartar el hecho de que Fuchsia pueda llegar a convertirse en un competidor para Windows, en los ordenadores personales.
¿Necesitas un App o un desarrollo web? Contacta con nosotros