Image Source

Often times we need to extend an existing feature without breaking flows, reuse code (as much as possible) and test the changes easily. A good architecture can help us achieve all of this.

There are many architectures, some old and well known like MVP, MVVM and some new Unidirectional patterns like MVI & Redux. Rather than talking about all of them, I will focus on the one architecture we chose at Urbanclap, why we chose it and the issues faced during migration to it.