Reactive development that links long-lived objects with pure functions is hot for good reason. Clean architecture helps with the separation of concerns making our code unit testable and separated from the framework. The recently released Android Architecture Components, and more specifically, the LiveData and ViewModel, make it easy to connect to the framework. If we mix this three and add some sparks of Dagger on top we get a solid formula for a Model-View-ViewModel based architecture.
The talk starts with a reminder of the characteristics any good architecture should have. This characteristics include: testability, separation of concerns, modularity, among some other good practices. The next step is to cover the three layers from clean architecture:
Data: This is the layer that keeps the entities. We’ll show how to create a fully reactive data layer that serves the entities in streams.
Domain: This is a connection layer that holds the business logic to create use cases. We’ll show how to make it stateless and 100% free of framework code.
Presentation: This is the layer where the new LiveData and ViewModel classes come into play. We will show how to transform the use cases from the domain layer into view specific models using the new android architecture components.
The goal of the talk is to provide insights and guidelines on how to build a solid MVVM based reactive architecture. There will be links to meaningful resources that will cover the topics of the talk, like a GitHub example project and blog posts.