Lección gratis · 28 min · del curso de 11 h

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 resumen

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.

Ver la respuesta en el vídeo · 19:44

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.

Ver la respuesta en el vídeo · 25:00

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.

Ver la respuesta en el vídeo · 27:45

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.

Ver la respuesta en el vídeo · 45:55

Preguntas frecuentes

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.

Ver la respuesta en el vídeo · 23:00

¿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.

Ver la respuesta en el vídeo · 36:26

¿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.

Ver la respuesta en el vídeo · 19:44

¿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.

Ver la respuesta en el vídeo · 21:29

Sigue aprendiendo

Más lecciones de este curso

Lecciones relacionadas de otros cursos