Skip to content

This is a sample app that fetches a list of popular, now playing and upcoming movies from The Movie Database (TMDb) API and caches the result in a local database. The app uses pagination to load more pages when user scrolls down the list. When clicking on a specific movie a movie details screen will be shown with more info about the movie.

mahmoud-adel-sayed/TMDb-Movies

Repository files navigation

TMDb Movies

This is a sample app that fetches a list of popular, now playing and upcoming movies from The Movie Database (TMDb) API and caches the result in a local database. The app uses pagination to load more pages when user scrolls down the list. When clicking on a specific movie a movie details screen will be shown with more info about the movie.

Screenshots

Build & Installation Instructions

You must use Gradle JDK 11 to run the project.

Architecture

This sample app uses MVVM Architecture with clean architecture principles, a well known architecture for Android, the app's components are less dependents and easier to test.

Testing

There are only tests for GetMovieDetailsUseCase, MovieDetailsViewModel and db testing but I will add other tests for more classes and also add different kind of testing like UI, integration or mock server testing.

Resources

  1. APK link: https://drive.google.com/file/d/1Hc6EB91VaPuEdnbVhhIeZ083HczZV6B1/view?usp=sharing.

Libraries used

Jetpack Compose Implementation


The project has an implementation using Jetpack Compose to run it you need to use at least android studio Android Studio Arctic Fox or Bumblebee Canary.

  • The project uses toml file to manage dependencies.
  • The minSdkVersion is 24.
  • The additional libraries used are Accompanist (Insets & Coil) and the Navigation Component.
  • The app theme relays on the Material Theme to model Colors, Shapes, and Typography.
  • LocalElevations & LocalImages are used to associate different Elevations & Images with the app themes.

About

This is a sample app that fetches a list of popular, now playing and upcoming movies from The Movie Database (TMDb) API and caches the result in a local database. The app uses pagination to load more pages when user scrolls down the list. When clicking on a specific movie a movie details screen will be shown with more info about the movie.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages