Flutter incluye su propio motor de renderizado, que escribe los píxeles directamente en la pantalla utilizando Skia o Impeller, en lugar de depender de las librerías gráficas nativas de cada plataforma.
Arquitectura
El componente básico de una aplicación en Flutter es un widget, que describe la lógica, la interacción y el diseño de un elemento de la interfaz de usuario de forma similar a React.
Los widgets pueden ser de dos tipos:
Stateless widgets: solo se actualizan si cambian sus parámetros de entrada.
Stateful widgets: permiten actualizar su estado interno mediante el método setState().
El framework incluye dos conjuntos principales de widgets:
Material Design: para seguir las guías de diseño de Google.
Las aplicaciones están escritas en Dart y compiladas de forma anticipada (AOT) en todas las plataformas, salvo en la web donde se transpilan a JavaScript o WebAssembly.
El motor de Flutter, escrito principalmente en C++, se encarga del renderizado y de la comunicación con los SDKs nativos de Android e iOS para implementar funciones como accesibilidad, red, archivos y soporte de plugins.
Historia
2015: La primera versión de Flutter se conoció como Sky y corría en Android. Fue presentada en el Dart Developer Summit con el objetivo de renderizar a 120 FPS.
2017: Publicación de la primera versión alfa (v0.0.6).
2018: Se lanza Flutter 1.0 en Londres.
2020: Flutter 1.17 incorpora soporte para Metal en iOS.
2021: Se anuncia Flutter 2 con soporte inicial para aplicaciones de escritorio y web.
2022: Flutter 3 añade soporte estable para todas las plataformas de escritorio.
2024: Desarrolladores de la comunidad anuncian Flock, un fork de Flutter enfocado en facilitar las contribuciones sin perder compatibilidad con la base de código principal.