Como hemos visto en un blog anterior, Flutter es un framework de desarrollo multiplataforma híbrido que permite desarrollar para las plataformas iOS y Android. Los puntos robustos de este framework son principalmente la facilidad para crear aplicaciones muy visuales, con rapidez de desarrollo y máximo rendimiento.

El lenguaje con el que se programa en Flutter es Dart 2. Este lenguaje es open-source y su desarrollo está dirigido por Google. Está orientado a ser utilizado como JavaScript pero está fuertemente tipado, por lo que se asemeja a TypeScript. Está evolucionando a ser un lenguaje importante en la generación de UI por código, es muy similar a JSX en React o el nuevo framework SwiftUI.

Actualmente su fuerte no solo son teléfonos y tablets, sino cubrir cubrir plataformas Web, Watch y TV. Está claro que su propósito es abarcar todas las necesidades de desarrollo de un producto con una única tecnología/implementación.

Arquitectura del framework

Está compuesto por varios módulos que permiten tener a disposición los componentes necesarios para desarrollar una aplicación con funcionalidades normales. Podemos distinguir principalmente:

  • Dart como lenguaje y sus librerías.
  • Motor gráfico 2D Skia, próximo motor gráfico de chrome optimizado al máximo para ofrecer un gran rendimiento en cualquier hardware.
  • Core del framework que gestiona los ciclos de vida y permite el desarrollo basado en estados.
  • Componentes visuales. Divididos en dos grandes módulo.
  • Material contiene los componentes tradicionales del diseño de google y proporciona una experiencia de uso similar a la que encontramos en Android.
  • Cupertino los elementos imitando la experiencia que encontramos en iOS. En la última release ha sido potenciado ofreciendo una experiencia personalizada completa dentro de iOS.
  • Componentes que nos facilitan el uso de temas y adaptación a diferentes plataformas-pantallas. Nos dividen las plataformas en:
  • Activas: móvil, tablets (plataformas con una gran interacción por parte del usuario).
  • Pasivas: TV, Embebidos (plataformas con poca interacción).

Todos estos módulos son compilados de “nativo” a código máquina. De esta forma podemos asegurarnos el máximo rendimiento en el dispositivo, aunque hay que aclarar que este compilado no se basa en los lenguajes nativos, es independiente de los mismos incluso de la plataforma o versión de la misma. Esto conlleva diferentes ventajas e inconvenientes a saber.

Principales ventajas

  • Mayor rendimiento óptimo del dispositivo.
  • Independencia de la plataforma.
  • Independiente de la versión de iOS o Android.
  • Abstracción a la hora de implementar características comunes en ambas plataformas.

Inconvenientes a destacar

  • Mayor peso de la aplicación puesto que el framework va compilado en la misma.
  • Gran dificultad para comunicarse con APIs nativas que no tengan plugin.
  • Dificultad para integrarse con librerías de terceros nativas de cada plataforma.

Entorno de desarrollo

Actualmente flutter ofrece plugins para Android Studio y Visual Studio code. Estos plugins nos facilitan la escritura de código, la ejecución y depuración del mismo en Ambas plataformas.

Los “plugins” es la terminología definida por el equipo de desarrollo de flutter para referirnos a los paquetes redistribuibles por los desarrolladores. Flutter proporciona su propio gestor de dependencias para la distribución de estos plugins.

Una de las funcionalidades a destacar en tiempo de desarrollo es el Hot-reload que permite en la mayoría de los casos refrescar la vista en la que nos encontremos con los últimos cambios de código manteniendo el estado.


 

Puesto que hay mucho que contar, este framework puede convertirse en uno de los principales referentes en trabajos de desarrollos híbridos. Continuaremos en un próximo artículo hablando del por qué Flutter nace como rival de React Native y Xamarin.

¿Listo para hacer su negocio imparable?

Asóciese con Design Soft y podrá serlo. Nuestro objetivo se refleja en ofrecer resultados extraordinarios que transforman su negocio.

Contactar a Ventas