What if someone was asking me which pattern to follow between MVP and MVVM to develop Android Apps? This article answers that question by highlighting the differences between both patterns.

MVVM stands for Model View ViewModel.

In my previous article, I explained how we could build an Android App using Clean Architecture. In this article, I am going to show how to write unit tests for that project using Mockito and Kluent.

Kluent is a “Fluent Assertions” library using the Infix-Notations and Extension Functions of Kotlin to provide a fluent wrapper around the JUnit-Asserts and Mockito. I like Kluent for the reason that it makes my test classes more readable, and it includes a lot of functions to make unit testing easy.

Let’s start by adding dependencies:

testImplementation 'org.amshove.kluent:kluent-android:1.61'
testImplementation 'org.amshove.kluent:kluent:1.61'
testImplementation 'org.mockito:mockito-core:2.23.0'


Here is the…

In this article, I will explain how to build an Android App using Clean Architecture. For that, I will focus on a specific use case: Get posts from the internet and display them in a recyclerView.

We will fetch posts from this endPoint: https://jsonplaceholder.typicode.com/posts.

We will use:

  • Koin: As a dependency injection framework to provide object dependencies.
  • Retrofit: For making network API calls.
  • Kotlin coroutines: For making asynchronous calls.

I will use Kotlin to write the Application. If you are not familiar with clean architecture, please visit this link.

Here is the architecture of the project:

Here is a question I always asked myself. What if someone was coming to me and ask me what do I recommend an Android Developer to know. I decided to write this article to answer that question.

Programming Language:

In terms of programming language, any Android developer should know Kotlin since Google has officially adopted it. Kotlin introduces a lot of features that java doesn’t have. Like Null safety, extension functions, and more. You should check those feature comparison here. Also, here is why you should learn Kotlin.


There are many approaches to architecting your Android apps like MVP, MVVM, MVI. …

Prinzly Ngassa

Lead Android Developer @ VMLY&R

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