The Movie DB Task

A simple project using The Movie DB based on Kotlin MVVM Repository architecture

image

How to build on your environment

Add your The Movie DB's API key in your build.gradle (Module: MovieDB.app) file. In buildTypes{} add this:

debug {
            buildConfigField("String", "API_KEY", '"?api_key=YOUR_API_KEY"')
            buildConfigField("String", "IMG_URL", '"https://www.themoviedb.org/t/p/w600_and_h900_bestv2"')
            buildConfigField("String", "BASE_URL", '"https://api.themoviedb.org"')
}

Tech stack & Open-source libraries

  • Minimum SDK level 23
  • 100% Kotlin based
  • JetPack
    • Lifecycle - dispose observing data when lifecycle state changes.
    • ViewModel - UI related data holder, lifecycle aware.
    • Room Persistence - construct database.
  • Architecture
    • MVVM Architecture (View - DataBinding - ViewModel - Model)
    • Repository pattern
    • ViewBinding.=
  • Retrofit2 & Gson - constructing the REST API
  • Glide - loading images
  • AnimatedBottomBar - as bottom navigation view
  • android-shape-imageview - as shaped image view
  • android-sdp - for responsive sp and dp
  • Paging 3 - for endless scroll
  • Koin - for Dependency Injection