Skip to content

sDevPrem/tmdb_my_movies

Repository files navigation

MyMovies

In My Movies app, you can explore top rated and popular movies. It is an Android client implementation of TMDB API using MVVM and clean architecture.

Features

  1. Explore top rated and popular movies.
  2. Single Activity Architecture and uses Jetpack navigation to navigate through destination (fragments).
  3. Retrofit to do api calls and gson to parse response.
  4. Paging3 to load only required Movies.
  5. Hilt for dependency injection.
my_movies_home my_movies_details

TODO

  • Show a progress bar when api is being called.
  • Show a Error message and give the user a button to retry.
  • Also do the above in pagination (showing error and loading at bottom).
  • Implement deeplink and share deeplink of the detail screen when user click on share button.

Architecture

This app follows MVVM architecture with Clean architecture, Uni Directional Flow (UDF) pattern and Single Activity architecture pattern.

Packages

  • :data: - The data origin point.
  • :di: - Hilt modules.
  • :domain: - Central nervous system of the app containing the contract between UI and Data layer.
  • :ui: - All the Screens UI lies here in subpackages.

Build With

Kotlin: As the programming language.

Jetpack Navigation : To navigate between destinations(fragments).

Hilt : As a dependency injector.

Paging3: For infinite scrolling.

Retrofit: As Api Client.

Coroutines: For Asynchronous programming.

Installation

Simple clone this app and open in Android Studio.