Saltar al contenido
mreysei · Michael Reyes
Tema

BLoC Pattern con Flutter

Por Michael ReyesPublicado el Actualizado el 1 min de lecturaCategoría: Tecnología

Logotipo de Flutter junto al texto «BLoC Pattern Flutter» sobre un fondo azul.

Esto es un resumen. El artículo completo, con todo el código paso a paso, está publicado en el blog de Lean Mind: BLoC Pattern con Flutter.

El BLoC Pattern se presentó en la Dart Conference de 2018 con una idea sencilla: poner una capa intermedia entre las vistas y el modelo, para que el mismo código sirva en las aplicaciones móviles hechas con Flutter y en las aplicaciones web hechas con Angular Dart. Esa capa, el bloc, recibe eventos de la vista, habla con el repositorio o el caso de uso y responde con estados. La vista solo se reconstruye según el estado que le llega.

Diagrama del patrón BLoC: la pantalla envía eventos al BLoC y se reconstruye con cada estado; el BLoC lee y escribe datos mediante un repositorio o caso de uso. LoadDataEvent pasa por LoadingState hasta RecoveredDataState; UpdateDataEvent pasa por LoadingState y acaba en ErrorState o SuccessState.

En el artículo construyo desde cero una pantalla de perfil para verlo funcionar:

  • Los cuatro ficheros mínimos: el bloc, la pantalla, los eventos y los estados.
  • Los paquetes flutter_bloc, built_value y build_runner, y cómo se generan con ellos los estados inmutables.
  • Un InitialState que lanza el LoadDataEvent, y el paso por LoadingState hasta llegar a RecoveredDataState con los datos del repositorio.
  • Cómo usa la vista el BlocBuilder para pintar un spinner o el nombre según el estado, y por qué pasa a ser un StatefulWidget.

La conclusión es la que resume el patrón: la vista se construye a partir de los estados, y los estados cambian en respuesta a los eventos.