Summary
In this chapter, we had a first look at the SoC principle. We understood why we must split an application's responsibilities across several layers and explored how we can do that with the help of presentation design patterns.
In the first part of this chapter, we had a quick look over the implementations for the most common presentation patterns in Android: MVC, MVP, and MVVM.
After that, we established that MVVM might be an appropriate choice for our Compose-based Restaurants application. We understood in which layer each type of logic must reside, and then tried to achieve SoC as well as possible in our application.
In the last part of this chapter, we noticed how easy it is for our UI layer to extend its responsibilities and start performing presentation logic by mutating the UI state within the ViewModel
. To counter that, we learned how to better encapsulate the UI state by using backed properties.
Let's continue our journey of improving our application...