Una de las primeras cosas que aprendemos cuando comenzamos con Flutter, es lo que son los widget. Toda la interfaz de una app está compuesta por widgets.
¿Qué es un widget?
Para definirlo de forma rápida, un widget es cada uno de los componentes de la interfaz de una aplicación de Flutter. Todos los componentes que vemos como botones, textos, imágenes, listados, menús… son wigdets
Pero no sólo los componentes que vemos son widgets, también otros elementos que no vemos. Unos widgets llamados layouts nos permiten estructurar, distribuir y colocar otros widgets como queramos. Por ejemplo un widget «Column» nos permitirá situar unos elementos sobre otros como su propio nombre nos permite deducir, y por su parte el widget Row está pensado para hacer lo mismo pero horizontalmente.
Cada pantalla de la aplicación es un árbol de widgets, desde la propia pantalla hasta el último icono, todos son widgets que se colocan unos dentro de otros.
Cada widget tiene una serie de propiedades que nos permiten personalizar y definir su contenido o comportamiento. Por ejemplo un botón puede tener una propiedad para definir su color de fondo, otra para definir la función que se ejecutará cuando se pulse sobre él y otra propiedad para elegir otro widget que irá dentro de él (de ahí lo del árbol de widgets), que seguramente será un icono o un texto.
Pensados para facilitarnos la vida
El concepto de que las interfaces de usuario estén compuestas de un árbol de elementos no es nada nuevo, lo que sí es destacable en Flutter es la facilidad con la que se pueden hacer las interfaces de usuario gracias a esos widgets.
Esto es así sobre todo por dos motivos, en mi opinión. En primer lugar por la facilidad y rapidez con la que podemos insertar un widget, con unas pocas líneas podemos definir el elemento que queremos y darle valor a sus propiedades. Y en segundo lugar por todos los widgets que ya están hechos y que nos facilitan mucho la vida, hay un widget para cada uno de los elementos típicos de una aplicación. Están muy bien pensados y nos dan justo las propiedades que necesitamos, lo que nos ahorra mucho tiempo.
Vamos a hablar de este concepto tan interesante en el capítulo de esta semana.