We use bloclibrary. Please, make sure you read their short introduction guide. It is well written and explains problem why you need such a solution.
Freezed in Bloc
We see some great benefits of using freezed for bloc events and states. Events will always be shaped like a sealed classes, so it's neat to write something like
PaymentEvents. and you'll see autocomplete of all event options.
On the consuming side, in the bloc, you have a neat
event.when method so you can call appropriate methods for each event.
Another advantage is
copyWith. This is useful if you have a bloc state. If your state changes a lot, then you have possibility to change just one property of the state, like
state.copyWith(submitEnable = true) while keeping immutability. Without freezed this would look much uglier.