This is a direct application of the declarative approach which Flutter strongly emphasizes i.e. UI = f (state). BLoC is a place where events from the user interface go . Within this layer, as a result of applying business rules to a given event, BLoC responds with a specific state, which then goes back to the UI.