Con todo lo que hemos visto en los capítulos anteriores tenemos a nuestro alcance todo lo necesario para entrar un poco más a profundidad en Flutter. Sin embargo Flutter es un lenguajes fuertemente dependiente de los estados. ¿Qué son los estados? ¿Qué tipos de estados existen? resolveremos estas inquietudes y comenzaremos a utilizar esta teoría en la práctica, en el desarrollo de nuestra App Weinflu.

¿Qué es la gestión de estados?

Comencemos por definir qué es un estado. La RAE lo define como “situación o modo de estar de una persona o cosa, en especial la situación temporal de las personas o cosas cuya condición está sujeta a cambios”.

Si llevamos esta definición a una aplicación, podríamos decir que, el estado describe la situación actual de la aplicación o de sus componentes. Por ejemplo, el solo hecho de que el usuario le dé clic a un checkbox cambia la situación actual de la aplicación, por tanto cambia su estado.

e0e648c8287e3abf839749fc864a6f22.gif

Otro ejemplo, podría ser cuando hacemos una petición a una API en el back. Mientras estamos cargando la información mostramos un indicador circular y, cuando la información está lista, mostramos los datos recibidos en pantalla de forma que tendríamos el estado loading (cargando) y el estado loaded (cargado).

0_wCrrryoOOFvUhuJk.gif

En la práctica, existen al menos dos tipos de estado determinantes dentro de las aplicaciones que debes conocer; los estados efímeros y de aplicación. Veamos cada uno de ellos:

Estados efímeros

El estado efímero (a veces llamado estado de UI o estado local ) es el estado que puede contener perfectamente un solo widget. Por ejemplo:

Con esto en mente, debemos pensar para al estado efímero no necesitan acceder los demás widgets en el árbol.

Cuando menciones árbol de widgets se refiere a esto porque como vimos en el capítulo anterior, un widget es el papá de todos los widgets pero a su vez esos widgets tienen widgets hijos entonces es como un árbol con todas sus ramas.

Estado de aplicación

Este estado no es efímero, es necesario compartirlo a lo largo de la aplicación y en ocasiones desea mantenerlo entre sesiones de usuario (a veces también llamado estado compartido).

Ejemplos de estado de aplicación: