BLoC Pattern
Business Logic Component. Uses Streams (Inputs as Events, Outputs as States). Very strict. Enforces separation of concerns. Standard in Enterprise.
Riverpod (Provider 2.0)
Created by the author of Provider. Compile-safe. No BuildContext dependencies. Global-like access but testable. Very flexible.
Boilerplate War
BLoC is verbose. You need Event classes, State classes, and the BLoC class. Cubits reduce this. Riverpod is concise (one line providers).
Testability
Both are excellent. BLoC is input/output testing (easy). Riverpod allows overriding providers in tests easily.
Dependency Injection
BLoC usually relies on MultiBlocProvider in the tree. Riverpod is a DI system itself. Riverpod wins on DI capabilities.
Learning Curve
Streams are hard for beginners. BLoC is steeper. Riverpod is conceptually easier but has "too many ways to do things".
Decision Framework
Banking app? Strict team? BLoC. Fast startup? Solo dev? Riverpod.