Junior — Middle
¿Puedes explicar el mecanismo de funcionamiento del patrón BLoC en la gestión del estado de la aplicación?
sobes.tech AI
Respuesta de la IA
El patrón BLoC (Business Logic Component) se utiliza en Flutter para gestionar el estado de la aplicación, separando la lógica de negocio de la interfaz de usuario.
La idea principal es usar flujos (Streams) para transmitir eventos y estados:
- Eventos (Events): acciones del usuario o eventos externos se envían al BLoC.
- Procesamiento: el BLoC recibe los eventos, realiza la lógica de negocio y forma un nuevo estado.
- Estados (States): los datos actualizados se transmiten de vuelta a través del flujo, al que se suscribe la UI.
Esto permite que el código sea más modular, testeable y mantenible.
Ejemplo de un BLoC simplificado:
class CounterBloc {
final _eventController = StreamController<void>();
final _stateController = StreamController<int>();
int _count = 0;
StreamSink<void> get eventSink => _eventController.sink;
Stream<int> get stateStream => _stateController.stream;
CounterBloc() {
_eventController.stream.listen((_) {
_count++;
_stateController.sink.add(_count);
});
}
void dispose() {
_eventController.close();
_stateController.close();
}
}
La interfaz de usuario se suscribe a stateStream y envía eventos a eventSink, el BLoC actualiza el estado y notifica a la UI.