Evgeny Cherkasov
> народ, может кто вкратце объяснить разницу между блоком и провайдером в стейт менеджменте?
блок это концепция отделения бизнес-логики от UI, основанная на получении потока событий от UI и преобразование его в поток состояний.
провайдер - это библиотека, предоставляющая инструмент для DI, а также имеющая ряд дополнительных компонентов, позволяющих удобно и гибко организовать управление состоянием (ChangeNotifierProvider, ChangeNotifier/ValueNotifier, Cunsumer/Selector и т.п.)
> Правильно ли я понимаю, что оба подхода позволяют отделить бизнес логику от UI
да
> оба подхода под капотом используют стримы?
нет, провайдер не завязан на стримы
> Правильно ли то, что с помощью провайдера то что раньше было statefull может стать statless и мы можем в большинстве случаев избавиться от setState'а?
Можем, но вообще говоря это не взаимоисключающие вещи. Не всегда нужно избавляться от setState, провайдер может использоваться и в stateful
> В чем разница тогда между ними, и почему часто их используют вместе, блок+провайдер?
Разница описана в п.1, блок + провайдер используют, насколько я понимаю (сам я блок не использую) , для доставки объекта блока в дерево виджетов
Небольшая поправка - блок+провайдер не используют. В BlocLibrary уже интегрирован провайдер