Designing app architecture
One of the most common mistakes candidates make when asked about app architecture is replying, “MVVM, of course!”
So, I want to remind you – MVVM is a design pattern, not an architecture, and I want to emphasize the difference.
A design pattern is a reusable solution to a common problem. Dependency Injection, Singletons, and MVVM are examples of design patterns. On the other hand, architecture is the general structure of our project that represents our app idea.
An excellent real-world example is a building. In this case, the architecture describes the number of floors, where the parking lot and the entry door are, or what type of roof we have. Design patterns describe how each apartment is built – the number of rooms in each apartment, the kitchen’s location, and the electrical wiring.
We can say that each apartment and floor could be designed differently – meaning we can use different design patterns...