Skip to content

The Movie App is an Android app built using Jetpack Compose, TMDB API, Retrofit, and MVI. It allows users to explore movie categories, view detailed information, and add movie to favorite movie list and search on movies. The app uses Paging 3 for smooth data loading and caching the movies in Room Database , ensuring a fast, seamless experience.

Notifications You must be signed in to change notification settings

Mohamed-Rafat-Safan/Movies-App-By-Jetpack-Compose

Repository files navigation

Movies App By Jetpack Compose

  • The Movie App is an Android app built using modern tech like Jetpack Compose, TMDB API, Retrofit, and MVI with clean architecture by layer (data - domain - presentation).

  • It allows users to explore movie categories, view detailed information, and add movie to favorite movie list and search on movies in search screen.

  • The app uses pagination by Paging3(RemoteMediator - PagingSource) for smooth data loading and caching the movies in Room Database, ensuring a fast, seamless experience.

Features:

  • Splash Screen
  • Intro Screen
  • Home Screen to display Movies by category (Trending - Popular - Top Rated - Upcoming - Discover - Now Playing)
  • Details Screen to display movie details
  • Search Screen to search for movie
  • Favorite Screen to display all movies that is favorite in RoomDb
  • Caching movie in RoomDb

💡 Technologies Used::

  • language: Kotlin
  • UI layouts using Jetpack Compose
  • Multi-screen by navigation compose
  • SavedStateHandle
  • Coil Compose
  • Clean Architecture {presentation - domain - data}
  • MVI architecture
  • Pagination by Paging3
  • RemoteMediator & PagingSource
  • Retrofit2 & Gson - construct the REST APIs.
  • Flow
  • Room Database
  • Dependency injection by (Dagger Hilt)
  • Coroutines for asynchronous
  • Unit Testing
  • Mocking (mockk)

Images this application :

Splash Screen & Intro Screen:

   


Home Screen:

   


Movies Details Screen:

           

Movies Search Screen:

           

Favorite Movies Screen:

   


In case of no internet:

           

Architecture

The following diagram shows all the modules and how each module interact with one another after. This architecture using a layered software architecture.


Libraries Used 📚

  • Jetpack Compose: Modern UI toolkit for building native Android UIs.
  • TMDB API: Provides access to movies, and cast information.
  • Retrofit: Type-safe HTTP client for Android and Java.
  • MVI Architecture: Separates UI, business logic, and data management for easy maintainability.
  • Dagger-Hilt: Reduces the boilerplate of manual dependency injection.
  • Paging 3: Handles large data sets by loading content in chunks.
  • Room Database: Local persistence for saving favorite movies.
  • Navigation Compose: Handles app navigation in a declarative way.
  • Coil: To load image from server to UI.

Thanks for checking out the TMDB Movie App! Don't forget to ⭐ the repository if you find it helpful. 😊


Made with ❤️ by Mohamed Ra'afat


About

The Movie App is an Android app built using Jetpack Compose, TMDB API, Retrofit, and MVI. It allows users to explore movie categories, view detailed information, and add movie to favorite movie list and search on movies. The app uses Paging 3 for smooth data loading and caching the movies in Room Database , ensuring a fast, seamless experience.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages