I have been using MVP for my projects for a long time. I like its control over the view layer and it is also super simple to write unit tests for the presenter layer.
On the other hand, I’m really into the MVVM for its reactiveness. On top of that with the help of the android jetpack architecture components, it is not so hard to have a clean architecture.
All these reasons on my mind I created a project to see what an android project would look like with the latest and fanciest approaches and libraries. I know that there are (and always will be) space for improvement but I’m also happy about the result of combinations that I made.
Kotlin: I don’t see a reason to explain this.
Coroutines: I wanted to see if it works and seen as it is promised. No more callback hells!
Koin: It is simple! Its performance is also pretty good on small/mid size projects especially after version 2.0.
Navigation: It works with single activity approach very well.
ViewModel: No need to stress about device rotations any more.
LiveData: No need to keep the view reference any more.
Mockito: Especially like it for its inOrder method.
Would be good to have
Mockk: Kotlin specific mocking library.
I’m not going to go into implementation details. You can find the github project below. Go ahead and have a look at the project. What parts did you like, what parts are wrong or can be improved? Leave a comment or clap(s). Feed the community. 😉