📘 Definición e propósito #
Flutter é un kit de desenvolvemento de software (SDK) de código aberto creado por Google, deseñado para construír aplicacións multiplataforma cun único código fonte.
O seu obxectivo principal é permitir aos programadores que, a partir dunha única base de código, poidan crear aplicacións para móbiles (Android e iOS), web, escritorio (Windows, macOS, Linux) e mesmo dispositivos embedded (como Raspberry Pi ou pantallas de coches).

A idea fundamental de Flutter é a produtividade: escribir o código unha soa vez e despregalo en múltiples plataformas sen comprometer o rendemento ou a aparencia nativa da aplicación.
Flutter usa Dart como linguaxe de programación principal, tamén desenvolvida por Google, que destaca pola súa sinxeleza, seguridade e soporte para a programación orientada a obxectos.
🧱 Flutter como Framework de UI (Interface de Usuario) #
Flutter é coñecido como un framework de UI (Interface de Usuario). Isto significa que se centra principalmente en como se ve e como interactúa o usuario coa aplicación.
A diferenza doutros frameworks que se basean en compoñentes nativos da plataforma, Flutter proporciona o seu propio motor de renderizado.
O motor de renderizado de Flutter debuxa directamente os pixels na pantalla, dándolle un control total sobre cada píxel e asegurando que a interface sexa consistente e de alto rendemento en todas as plataformas, sen depender dos compoñentes nativos do sistema operativo.

Widgets #
No corazón de Flutter está o concepto de Widgets.
- En Flutter, todo é un Widget.
- Dende un botón ou un campo de texto ata a estrutura completa da pantalla ou a forma en que se organiza o deseño, todo se constrúe a partir de widgets.
- Estes widgets son bloques de construción predefinidos ou personalizados, que se combinan para crear interfaces de usuario complexas e flexíbeis.

Flutter conta con:
- Unha rica colección de widgets predefinidos que seguen as directrices de Material Design (Google) e Cupertino (Apple).
- Unha arquitectura optimizada para debuxar cada píxel directamente na pantalla (sen depender dos compoñentes nativos da plataforma).
- Soporte para animacións fluidas, efectos visuais, personalización completa e temas adaptativos.
🌍 Vantaxes de Flutter #
Flutter ofrece varias vantaxes clave que o fan moi atractivo para o desenvolvemento de aplicacións multiplataforma:
- Multiplataforma (Código Único): A principal vantaxe. Escribes o código unha vez en Dart e podes compilalo para Android, iOS, Web, Windows, macOS e Linux. Isto reduce significativamente o tempo de desenvolvemento e o mantemento.
- Rendemento Elevado: Flutter compila o código Dart directamente a código máquina ARM (para móbiles) ou JavaScript (para web), eliminando a necesidade dunha ponte entre o código e a plataforma (como ocorre con React Native). Isto resulta en aplicacións moi rápidas, fluídas e con rendemento case nativo.
- Hot Reload e Hot Restart: Estas son ferramentas incriblemente útiles para a produtividade do desenvolvedor:
- Hot Reload: Permite ver os cambios no código case instantaneamente na aplicación en execución, sen perder o estado actual da app. Isto acelera moito o ciclo de desenvolvemento e depuración.
- Hot Restart: Reinicia a aplicación rapidamente, limpando o seu estado por completo, útil cando se fan cambios estruturais importantes.
- Interface de Usuario flexible e personalizable: Grazas ao seu sistema de Widgets, Flutter ofrece un control sen precedentes sobre o deseño da UI. Podes crear interfaces que sigan as directrices de Material Design (Android) ou Cupertino (iOS), ou deseñar un estilo completamente personalizado.
- Gran ecosistema de paquetes: integración sinxela con librarías e APIs de terceiros (Firebase, mapas, sensores, etc.).
- Comunidade activa e en crecemento: Flutter conta cunha comunidade de desenvolvedores moi grande e activa, o que se traduce en moitos recursos, paquetes (packages) preconstruídos en pub.dev e soporte dispoñible en foros e comunidades.
- Linguaxe Dart: Flutter utiliza Dart, unha linguaxe optimizada para o desenvolvemento de UI.
🧠 Arquitectura xeral de Flutter #
A arquitectura de Flutter pódese dividir en varias capas principais que traballan xuntas para construír e renderizar as aplicacións:
- Framework
- Engine (motor de renderizado)
- Embedder

Framework #
Esta é a capa máis alta, onde os programadores interactúan directamente con Flutter.
- Está escrita completamente en Dart.
- É o nivel onde traballas a maior parte do tempo como programador.
- Contén os widgets, clases de navegación, animación, temas, as ferramentas para construír layouts, xestionar estados, animacións, xestos, etc.
- Inclúe as APIs de baixo nivel que permiten a Flutter interactuar co motor.
Engine (motor de renderizado): #
É o “corazón” de Flutter, escrito principalmente en C++ e C.
- Encárgase encárgase de debuxar (renderizar) os widgets na pantalla.
- Proporciona as APIs de baixo nivel para o motor de renderizado, o manexo de texto, a rede, a entrada/saída, a integración coa plataforma e o tempo de execución de Dart (Dart Runtime).
- É o que permite a Flutter debuxar pixels directamente na pantalla sen depender dos compoñentes UI nativos de cada plataforma.
Platform Embedder (integrador de plataforma): #
É o código específico de cada plataforma (Android, iOS, Web, Desktop) que permite a Flutter executarse nese ambiente.
- Está escrito na linguaxe nativa da plataforma (Java/Kotlin para Android, Objective-C/Swift para iOS, C++ para Desktop, JavaScript para Web).
- É a parte que conecta Flutter co sistema operativo da plataforma (Android, iOS, web…), é decir, integra o motor de Flutter co sistema operativo subxacente.
🔗 Para saber máis #
- Sitio oficial de Flutter: flutter.dev
- Documentación introdutoria: Get started with Flutter
- Arquitectura detallada: Flutter Architecture Overview