Sometimes when I apply for a freelance assignment, I am asked “do you use MVC”? I’ve found it hard to answer that question. I know what it is, I don’t use it, but when I say so, I don’t get the assignment. I have explored the issue in a little detail more recently, and now I have the answer.
MVC doesn’t really fit the Android lifecycle model, as is explained in more detail here. Model, View and Controller are hard to match to Activities, Fragments, and other Android components. My apps generally have Activities and/or Fragments, and custom Views. These have access to an intermediate layer that manages data and API access, and everything that’s in the model and data layers. Using dependency injection makes it easy to fully separate the View layer, the model/data layer and the intermediate layer. This is not the case for and MVC model where there is a coupling between all layers.