diegoRodicio

Está documentación está a túa disposición sin ningún custo económico. Sen embargo, para a súa elaboración dedico moito tempo e recursos, polo que agradecería unha colaboración co que consideres oportuno. Gracias.

View Categories

🚀 Que é Flutter?

📘 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 #