Bloc: the boring architecture that scales
Trends rotate; production teams still ship with Bloc because it is predictable. UI sends events; blocs emit states; widgets rebuild from state.
Why it scales
- Debuggable event logs.
- Test blocs without pumping the entire app.
- Clear ownership boundaries between features.
Modern usage tips
- Prefer
flutter_blocbuilders/selectors over rebuilding whole pages. - Keep blocs free of
BuildContextnavigation side effects. - Pair with a repository layer — bloc is not your data layer.
Pitfalls
God-blocs that hold the whole app. Split by feature and lifecycle. Also do not map 1:1 every field change into a bloc event.
If your team needs a default architecture in 2026, Bloc is still a defensible answer.