A Modern Android Project

Modern Android

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.

Retrofit: Retrofit 2.6.0 or newer versions has a build-in suspend support. What else is needed?!

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.

DataBinding: Only the kotlin android extension view binding is used. Looking forward to use data binding in future.

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. 😉



Android Developer @Teckro.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store