Hey, first of all, great work! Good slab of text that details the development process quite accurately.
However, there is one nitpick I cannot ignore, and it is the difference between the BLoC pattern and the bloc library.
The library, fundamentally, is actually something many would describe as "Redux, but with smaller stores.".
- It maps almost 1:1 in the items you interact with
- Events : Actions
- "bloc" : Store
- mapEventToState : Reducer
- Uses a single stream output, exactly like Redux (Would this mean that Redux.dart is BLoC?)
- One could argue that wrapping the input in an Action violates the 'Components should send inputs "as-is"'
There is even a proper description and example of a bloc as a source!
This line is, as far as I can tell, not accurate. The library is similar, but the pattern itself is not. Redux stands for a single source of truth modified by clearly defined, "static" actions that predictably change said single source of truth. BLoC stands for the power of streams, both in and out, in some cases even inside.
I'm not saying that the library is bad, it's widely used and proves to be reliable, however, it is a car pretending to be a bike.