Ответ
Для нового приложения я бы выбрал Riverpod — он современный, гибкий и хорошо интегрируется с Flutter.
Почему Riverpod?
- Null-safety из коробки.
- Не зависит от BuildContext, что упрощает тестирование.
- Поддержка автоматического управления состоянием (Provider, StateNotifier и т.д.).
- Хорошая документация и активное сообщество.
Пример:
final counterProvider = StateNotifierProvider<Counter, int>((ref) => Counter());
class Counter extends StateNotifier<int> {
Counter() : super(0);
void increment() => state++;
}
// Использование в виджете
Consumer(
builder: (context, ref, child) {
final count = ref.watch(counterProvider);
return Text('Count: $count');
},
)
Если проект небольшой, можно использовать Provider, а для сложных стейтов — Bloc/Cubit. Но Riverpod — золотая середина.