Widgets en Flutter: cómo se construye una pantalla
Lección del curso gratis de Flutter de Thomas Viana: desmontas la app de ejemplo del contador en DartPad y entiendes cómo encajan los widgets básicos.
El vídeo empieza en el minuto de esta lección y sigue con el resto del curso. Ver el curso completo con su índice · Ver en YouTube
En Flutter, todo lo que ves en la pantalla es un widget: la pantalla entera, la barra superior, un texto, un icono o un botón. Los widgets se meten unos dentro de otros y forman un árbol. En esta lección del curso de Flutter gratis, publicado en agosto de 2024, Thomas Viana lo explica con la app del contador en DartPad, un editor que funciona en el navegador.
DartPad y la anatomía de una pantalla
Antes de instalar nada, Thomas abre DartPad, un editor online que permite escribir código Dart y ver la app funcionando al momento. Carga el ejemplo del contador: un botón que suma uno cada vez que lo pulsas. Con un pequeño esquema dibuja la estructura de esa pantalla, lo que en inglés se llama layout (disposición).
- Scaffold: el widget que representa una pantalla completa.
- AppBar: la barra de la parte superior, con su título.
- Body: el cuerpo de la pantalla, donde va el contenido.
El árbol de widgets: padres e hijos
Cada widget puede tener hijos. El Scaffold tiene tres: el AppBar, un Center en el body y un FloatingActionButton, el botón flotante. Center coloca en el centro todo lo que lleva dentro. Si un widget solo admite un hijo, la propiedad se llama child; si admite varios, children. Thomas propone un ejercicio sencillo: decir quién es el padre de cada widget y quiénes son sus hijos.
Column y Row: vertical u horizontal
Para poner dos textos uno encima del otro se usa Column, una columna. Si la cambias por Row, los elementos se colocan uno al lado del otro. Con la propiedad de alineación del eje principal decides si van al principio, en el centro o al final. Si los elementos no caben, Flutter avisa con un error de desbordamiento; en el ejemplo se soluciona con un estilo de texto más pequeño.
- Column: elementos apilados de arriba abajo.
- Row: elementos en fila, de izquierda a derecha.
- Start, center y end cambian la alineación.
El catálogo de widgets
Para terminar, Thomas enseña la documentación oficial de Flutter, que tiene una versión traducida al español, y su catálogo de widgets. En el apartado de layout están los que ya has visto y otros para practicar, como Stack, que pone un elemento encima de otro, o las cuadrículas. Su consejo es jugar con el ejemplo: añadir textos, cambiar columnas por filas y ver qué pasa.
Dudas sobre esta lección
¿Qué es un widget en Flutter?
Un widget es cada pieza de la interfaz de una app hecha con Flutter: una pantalla, un texto, un icono, un botón o un contenedor que organiza a otros. Los widgets se anidan unos dentro de otros y forman el árbol de widgets. En el curso, Thomas Viana lo explica desmontando la app de ejemplo del contador.
¿Qué diferencia hay entre Column y Row en Flutter?
Column coloca sus widgets hijos uno debajo de otro, en vertical, y Row los coloca uno al lado del otro, en horizontal. Las dos reciben una lista de hijos en la propiedad children y permiten alinear los elementos al principio, en el centro o al final.
¿Necesito instalar Flutter para practicar con widgets?
No para empezar. En esta parte del curso se usa DartPad, un editor que funciona en el navegador y que permite ejecutar código Dart y ver el resultado. Más adelante, el curso de Flutter gratis explica cómo instalar Flutter y el resto de herramientas en tu computadora.
¿Qué es el Scaffold en Flutter?
Scaffold es el widget que representa una pantalla. Tiene propiedades para cada zona: appBar para la barra superior, body para el contenido y floatingActionButton para el botón flotante. A cada propiedad se le asigna otro widget. Es el primer widget que se ve al desmontar la app del contador.
Más lecciones de este curso
- Cómo hacer un perfil de LinkedIn que atraiga a reclutadoresEmpieza en el 10:39:03
- Cómo subir un proyecto a GitHub paso a pasoEmpieza en el 09:45:31
- Provider en Flutter: gestión de estado paso a pasoEmpieza en el 08:02:54
- Qué es Git y cómo se trabaja con ramasEmpieza en el 09:28:01
- Qué es Scrum y cómo trabaja un equipo de desarrolloEmpieza en el 10:27:48
- Stateless vs stateful en FlutterEmpieza en el 04:20:04
Lecciones relacionadas de otros cursos
- Bucles en Python: for y while con ejemplosLección · Curso de Python gratis: aprende a programar desde cero
- Cómo crear una política de privacidad para tu web o appLección · Cómo crear una app desde cero sin programar: curso gratis con inteligencia artificial
- Cómo instalar Python y preparar tu editorLección · Curso de Python gratis: aprende a programar desde cero
- Condicionales en Python: if, elif y elseLección · Curso de Python gratis: aprende a programar desde cero
