Flutter (software)

Compartir Imprimir Citar

Flutter es un kit de desarrollo de software de interfaz de usuario de código abierto creado por Google. Se utiliza para desarrollar aplicaciones multiplataforma para Android, iOS, Linux, macOS, Windows, Google Fuchsia y la web desde una única base de código.

Descrito por primera vez en 2015, Flutter se lanzó en mayo de 2017.

Historia

La primera versión de Flutter se conocía como "Sky" y se ejecutaba en el sistema operativo Android. Se dio a conocer en la cumbre de desarrolladores de Dart de 2015 con la intención declarada de poder renderizar consistentemente a 120 cuadros por segundo. Durante el discurso de apertura de Google Developer Days en Shanghái en septiembre de 2018, Google anunció Flutter Release Preview 2, el último lanzamiento importante antes de Flutter 1.0. El 4 de diciembre de ese año, se lanzó Flutter 1.0 en el evento Flutter Live, lo que denota la primera versión estable del marco. El 11 de diciembre de 2019, se lanzó Flutter 1.12 en el evento Flutter Interactive.

El 6 de mayo de 2020, se lanzaron la versión 2.8 del kit de desarrollo de software (SDK) de Dart y Flutter 1.17.0, que agregaron soporte para la API Metal que mejora el rendimiento en dispositivos iOS en aproximadamente un 50 %, así como nuevos widgets de material y seguimiento de red. herramientas de desarrollo.

El 3 de marzo de 2021, Google lanzó Flutter 2 durante un evento en línea de Flutter Engage. Esta importante actualización trajo soporte oficial para aplicaciones basadas en la web con un nuevo renderizador Canvas Kit y widgets específicos de la web, soporte de aplicaciones de escritorio de acceso temprano para Windows, macOS y Linux y API mejoradas para agregar a la aplicación. Esta versión también utilizó Dart 2.0 que presentaba sonido de seguridad nula, lo que provocó muchos cambios importantes y problemas con muchos paquetes externos; sin embargo, el equipo de Flutter incluyó instrucciones y herramientas para mitigar estos problemas.

El 8 de septiembre de 2021, Google lanzó Dart 2.14 y Flutter 2.5. La actualización trajo mejoras al modo de pantalla completa de Android y la última versión de Material Design de Google llamada Material You. Dart recibió dos nuevas actualizaciones, estandarizando las condiciones de pelusa y marcando el soporte para Apple Silicon como estable.

El 12 de mayo de 2022, Google anunció el lanzamiento de Flutter 3 y Dart 2.17. Esta actualización amplió la cantidad total de plataformas admitidas a seis, incluido el soporte estable para Linux y macOS en los procesadores Intel y Apple Silicon.

El 30 de agosto de 2022, se anunció Flutter 3.3. Este lanzamiento presentaba la interoperabilidad de Objective-C y Swift y una vista previa temprana de un nuevo motor de renderizado llamado "Impulsor" que tiene como objetivo reducir el tartamudeo causado por la compilación de sombreadores.

Arquitectura marco

Los principales componentes de Flutter incluyen:

Plataforma de dardos

Las aplicaciones de Flutter están escritas en el lenguaje Dart y utilizan muchas de las funciones más avanzadas del lenguaje.

Mientras escribe y depura una aplicación, Flutter se ejecuta en la máquina virtual Dart, que cuenta con un motor de ejecución justo a tiempo. Esto permite tiempos de compilación rápidos, así como una "recarga en caliente", con la que se pueden inyectar modificaciones a los archivos fuente en una aplicación en ejecución. Flutter amplía esto aún más con la compatibilidad con la recarga en caliente con estado, donde en la mayoría de los casos los cambios en el código fuente se reflejan inmediatamente en la aplicación en ejecución sin necesidad de reiniciar ni perder el estado.

Para un mejor rendimiento, las versiones de lanzamiento de las aplicaciones de Flutter en todas las plataformas utilizan compilación anticipada (AOT), excepto en la Web, donde el código se transpila a JavaScript.

Flutter hereda el repositorio de software y el administrador de paquetes Pub de Dart, que permite a los usuarios publicar y usar paquetes personalizados, así como complementos específicos de Flutter.

Motor de aleteo

El motor de Flutter, escrito principalmente en C++, brinda soporte de renderizado de bajo nivel utilizando la biblioteca de gráficos Skia de Google o la capa de gráficos personalizada "Impulsor". Además, interactúa con los SDK específicos de la plataforma, como los proporcionados por Android e iOS, para implementar accesibilidad, E/S de archivos y redes, compatibilidad con complementos nativos y más.

Biblioteca de la fundación

La biblioteca Foundation, escrita en Dart, proporciona clases y funciones básicas que se usan para construir aplicaciones usando Flutter, como API para comunicarse con el motor.

Widgets específicos de diseño

El marco Flutter contiene dos conjuntos de widgets que se ajustan a lenguajes de diseño específicos: los widgets de Material Design implementan el lenguaje de diseño del mismo nombre de Google y los widgets de Cupertino implementan las pautas de interfaz humana de iOS de Apple.

Soporte IDE

Flutter mantiene soporte oficial para los siguientes IDE y editores a través de complementos:

Se pueden usar otros IDE con complementos compatibles con la comunidad o usando las herramientas de Flutter desde la línea de comandos.

Widgets

El componente básico en un programa Flutter es un "widget", que a su vez puede consistir en otros widgets. Un widget describe la lógica, la interacción y el diseño de un elemento de interfaz de usuario con una implementación similar a React. A diferencia de otros kits de herramientas multiplataforma, como React Native y Xamarin, que dibujan widgets utilizando componentes nativos de la plataforma, Flutter representa los widgets por píxel.

Hay dos tipos fundamentales de widgets: sin estado y con estado. Los widgets sin estado solo se actualizan si sus entradas cambian, lo que los hace muy eficientes, mientras que los widgets con estado pueden llamar al setState()método para actualizar un estado interno y volver a dibujar.

Aunque los widgets son el método principal para construir aplicaciones de Flutter, también se pueden omitir para dibujar directamente en un lienzo. Esta función se ha utilizado ocasionalmente para implementar motores de juegos en Flutter.