Skip to content

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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

 
 
 

Contributors

Languages