I've been working with Flutter for about two years and I'm currently searching for an architecture pattern that aligns well with my individual development needs. I'm particularly looking for a pattern that prioritizes the following:
I've explored several architectures but haven't settled on any of them for the reasons I've mentioned below:
MVC: I found the role of the Model a bit unclear, which led me to rule it out.
Bloc: Despite recognizing Bloc's potential strength in a large team context, I observed that alternatives like Riverpod significantly reduce the volume of code, making Bloc less attractive for my individual development work.
Clean Architecture & DDD: I encountered too much boilerplate code which felt excessive for individual development. Thus, I decided against using this as well.
I am seeking recommendations on a suitable architecture pattern that would best fulfill my requirements. Thank you in advance for your suggestions and insights.
I'm still pretty certain that my strategy is working well for my recent developed apps:
It's based loosely on the layers I've seen in Reso Coder's DDD, mixed with what I know from heavily working with Riverpod. Nearly everything is inside a Riverpod wrapper, to serve as a service locator and to enable mocking-by-overrides during testing.
Code is re-used in the app layer through the use of family providers (if the providers are identical, but have distinct lifecycles), or the use of mixin classes (to give similar behavior to related Notifiers).