MovieNight is a sample Android application that uses the clean architecture approach and is written in Kotlin.

The Motivation behind the app:

During the work on this app, my goal was to leave my comfort zone as much as I could, intentionally tackling subjects I'm less familiar with or, at times, entirely new to me.
Some of those subjects include:

  • The Kotlin programming language
  • Clean architecture
  • Test-driven development
  • Dagger2
  • Android architecture components (ViewModels, LiveData, Room, etc.)

How to run the app:

This app uses The MovieDB public API.
Register (its free) and grab your API key,
then paste it inside: .../res/values/api_key.xml


  • Few fixes and teaks
  • Add UI tests
  • Maybe expand the app functionality

Used libraries:

  • RxJava2
  • RxAndroid
  • Retrofit2
  • AndroidTagView
  • Picasso
  • Leakcanary
  • Android architecture components
  • Room Persistence Library