Skip to content

A Movie Database Android Application built with Android Jetpack components

Notifications You must be signed in to change notification settings

sagarrock101/MovieApp

Repository files navigation

MovieDB

It is a demo application made using TheMovieDB with Kotlin and MVVM architecture

Description

  • Shows a list of Movies fetched from TheMovieDB API
  • Movies list can be sorted based on Popular, Up Coming, Top Rated and Favorites
  • Movie titles can be saved to favorites
  • Movie titles can be shared
  • Movie titles can be searched with suggestions

ScreenShots

Light Theme

Dark Theme

Search

API key to run the app

Get a API key from TheMovieDB and add the key in local.properties file as tmdb_api_key = ""

Tech Stack and libraries used

  • 100% kotlin
  • Jetpack Components
    • LiveData - notify domain layer data to views.
    • Lifecycle - dispose observing data when lifecycle state changes.
    • ViewModel - UI related data holder, lifecycle aware.
    • Room Persistence - construct database.
  • Architecture
    • MVVM (Model View ViewModel) using Databinding
    • Repository Pattern
    • Dagger 2 for managing Dependencies
  • Retrofit2 - constructing the REST API
  • Room Database - for storing favorite movie titles
  • Moshi - is a modern JSON library for Android and Java. It makes it easy to parse JSON into Java objects
  • OkHttp3 - implementing interceptor, logging
  • Glide - loading images from url
  • Paging 2 - The Paging Library helps to load and display small chunks of data at a time.
  • Stetho - debugging persistence data & network packets
  • Expandable Text View for expand/collapsing longer texts
  • Circurlar Reveal Animation for search