Clean architecture separates your project into well defined layers: data, domain and presentation.
It enables easy testability and keeps your design adaptable to change.
Nowadays developing in Kotlin using functional types we can make it even more concise and boilerplate-less while clearly demonstrating our intent.