Desarrollo multiplataforma con “Flutter”
Hugo René Valadez Oliva
CIATEC, A.C., hvaladez@ciatec.mx, Septiembre 2022
El desarrollo de una aplicación comercial móvil, hoy en día significa que se debe de contar con por lo menos dos diferentes versiones de la App, una que pueda funcionar en plataformas Android y otra que pueda ejecutar sus funcionalidades en plataformas iOS para los dispositivos de la marca Apple.
Para hacer frente a este tipo de desarrollos se requiere idealmente de desarrolladores de software que trabajen con dos diferentes lenguajes de programación enfocados a cada una de las plataformas. Una alternativa es que Android ofrece un framework basado en programación nativa sobre lenguaje Java y Kotlin, mientras que iOS ofrece de forma similar un framework con programación nativa sobre lenguaje de Objective-C/Swift (Rastogi, 2021).
Sin embargo, una opción interesante para agilizar el desarrollo e implementación y por lo tanto la optimización de los recursos, es utilizar un framework enfocado en el desarrollo multiplataforma, en donde Flutter y React Native son ejemplo de estas opciones.
En este artículo, nos enfocaremos en Flutter, el cual es un Kit de Desarrollo de Software (SDK) creado por la empresa Google con un tipo de licenciamiento de código abierto y que ha tomado gran popularidad en este último par de años.
El framework Flutter es un kit de herramientas de Interfaz de Usuario (UI) para realizar aplicaciones, compiladas de forma nativa para dispositivo móvil, navegador web y aplicaciones de escritorio desde una única base de código («Desarrollo de aplicaciones nativas», 2022).
El código que se utiliza para el desarrollo de estas aplicaciones es Dart. Dart es un lenguaje de codificación open source optimizado y orientado al cliente basado en la creación de interfases para el desarrollo de aplicaciones ágiles creado por Google.
Para probarlo de forma inmediata se puede accesar a la página https://dartpad.dev/, el cual es un editor en línea dinámico para Dart y Flutter que permite empezar a codificar, visualizar y jugar con varios ejemplos o código nuevo directamente escrito por el usuario.
Si deseas iniciar en el desarrollo con Flutter, además de adentrarte en su documentación, también es recomendable interactuar o susucribirte con los blogs, canales de youtube y comunidades existentes. Un ejemplo de ello es el sitio: https://medium.com/flutter.
El uso de Flutter cuenta con diversas ventajas que comparte con otras herramientas, sin embargo también cuenta con beneficios particulares que lo han puesto en la mira de muchos desarrolladores de software y por lo que su interés continua de forma creciente. Alguno de las principales características que lo hacen atractivo son:
Multiplataforma. Como lo hemos mencionado, es una herramienta multiplataforma que nos permite utilizar un mismo código base para diferentes plataformas de sistemas operativos de diversos dispositivos móviles.
Widgets. Se encuentra basado en Widgets, los cuales son cada uno de los elementos sobre la pantalla de la App de Flutter, en donde la estructura del código de la App se convierte en realidad es un árbol de widgets.
Existen dos clasificaciones de tipos de widgets:
I. Stateless Widgets. Utiliza árbol de widgets con configuraciones constantes, que no cambiarán a lo largo del uso de la App.
II. Stateful Widgets. En este caso son una estructura de árbol de widgets que dinámicamente pueden estar cambiando su valor. Es decir, los widgets se reconstruyen a lo largo del uso de la App.
Principalmente existen 14 categorías de widgets que aplican para ambas clasificaciones: Accesibilidad, animación y movimiento, estilos imágenes e iconos, asíncronos, básicos, cupertino, de entrada, modelos de interacción, capas, componentes de material design, iluminado y efectos, desplazamiento, estilo y texto (What is widgets in Flutter?, 2022).
Rendimiento Nativo. Dentro de su arquitectura se permite la interacción en su nivel nativo por medio de su Engine escrito principalmente en C++, el cual proporciona un soporte a bajo-nivel vinculándose a la vez, tanto con Android, como con IOs.
Los widgets de Flutter incorporan todas las diferencias críticas entre plataformas, tales como desplazamiento, navegación, iconos y fuentes para proporcionar un rendimiento totalmente nativo para ambas plataformas (Comunidad FlutterES, 2022).
Interfase de usuario flexible. Por medio de una estructura basada en capas ofrece una completa personalización con renderizado rápico y diseños flexibles. La variedad de diseños es posible gracias a los diversos widgets preconstruidos con Material Design y Cupertino.
Crecimiento rápido en popularidad. Día a día se suman mas desarrolladores utilizando Flutter, por lo que se convierte en el framework multiplataforma con más alta velocidad de adopción a la fecha. De acuerdo con Google, se visualizo un incremento de aproximadamente 10 porciento mes tras mes.
Hot Reload. Cuando se compila cualquier App, normalmente el tiempo de compilación de la primera ocasión es mayor. El Hot Reload se trata de una capacidad o funcionalidad que permite agilizar el desarrollo de las aplicaciones al ayudarnos en el momento de aplicar cambios y arreglar errores de código. Esto es debido a que al visualizar el resultado del código en una máquina virtual después de compilar y volver a realizar cambios en el código, no es necesario una nueva compilación para visualmente ver las modificaciones en la pantalla de la máquina virtual, solo es necesario guardar los cambios del código.
Un hot reload causa que todos los widgets existentes ejecuten un rebuild. Solo el código involucrado en el rebuild de los widgets es automáticamente re-ejecutado (Comunidad FlutterES, 2022).
Finalmente podemos mencionar que Flutter se está convirtiendo rápidamente en una de las herramientas multiplataforma más utilizadas y con una importante comunidad de desarrolladores y herramientas en crecimiento, su lenguaje Dart es intuitivo y de sencillo manejo para la creación de diseños novedosos y vanguardistas, pero sobretodo permite la creación de aplicaciones tanto para plataformas iOS como Android con un menor esfuerzo.
Bibliografía:
Rastogi, Abhay (Enero, 2021). Flutter vs React Native which one in 2022.
Desarrollo de aplicaciones nativas. (2022). Recuperado 26 de septiembre de 2022, de Flutter website: https://esflutter.dev/
What is widgets in Flutter?. (Julio, 2022). Recuperado el 01 de octubre del 2022 de geeksforgeeks website: https://www.geeksforgeeks.org/
Comunidad FlutterES. (2022). Recuperado el 28 de septiembre de 2022, de FlutterES website: https://esflutter.dev/


Comentarios