I’ve seen how messy state and data flow can get without clear separation. Clean Architecture helps me keep my apps maintainable, scalable, and easy to test especially when working with teams.
Here’s my usual stack: • Presentation: Flutter UI + Riverpod for state management • Domain: Use cases, models, and entities • Data: Repository pattern with APIs, databases, and local caches
This structure has powered apps I have personally built like: JFK Guys: a shared expense tracker with automated balance settlement.
I’ve integrated dependency injection (using Riverpod) for even cleaner boundaries.
Here is a link and also pictures of the app design: https://github.com/themichaelolu/jfk_guys