Since you already refactored the Marvel App a lot of times, and tried multiple design patterns and…
Nuno Vieira

Hello Nuno Vieira, first thank you for your feedback. That is not an easy answer, and like many others in our area, it depends. Usually, you will not be sure about what is the best architecture for your project up front. There is a concept which I am quite fond of called Evolutionary Architecture. Keeping that in mind you could try to picture your project as a set of different Modules, each module can vary in complexity and requirements. Therefore each module can have a proper architecture that best suits it. Despite that, we have to think about architectures as living beings, so they will adapt and change during the project. Choose a design for the whole system up front usually is not the best idea. I would recommend you to picture your system as this set of modules and start to choose a design that best addresses each module needs, always favoring simplicity. There is nothing wrong to use MVC for a simple module; the problem is to bring VIPER(and it’s complexity) in the game to solve a simple problem.