MVC, MVP, and MVVM are three popular design patterns in software development. Let’s have a look on Model View Controller (MVC), Model View Presenter (MVP) and Model View View-model (MVVM) one by one. Lots of Android libraries that make their life easier. And enable proper architecture for Android apps at the same time. For instance: Android DataBinding – allows transfer of certain application logic into XML; Dagger 2 – that implements the ‘Dependency Injection’ technique; Android Annotations – library making Android components implementation as simple as possible, while not cutting down their features; RxAndroid – highly functional coding approach, one that if fully apprehended may optimize lots of tasks; Firebase – mobile and web application platform that helps to develop high-quality apps; Model View Controller (MVC) MVC design pattern divides an application into three major aspects: Model, View, and Controller. The tools offered by Android, with layouts, Activit