Looking at this illustration for MVVM (source):
You can see that there are seperate data and business logic models. However, using BLoC there is not really a distinction like that. The classes that handle the business logic also handle the data, which can also apply to MVVM.
To be fair, there really is not much of a difference. The key part to take away is the same for both: Isolating the business logic from the UI. Hence, the implementation of either of the two will look very similar, i.e. using Stream
‘s and StreamBuilder
‘s.
Additionally, there are packages that make working with Stream
‘s easier, e.g. rxdart
which is what the Flutter team uses as far as I am concerned.