https://github.com/dheerajkotwani/cinewatch
🎥 A minimalistic movie listing app to browse movies using TMDB API, 📲 built to demonstrate MVVM Architecture, Kotlin, Coroutines, Dagger 2/Hilt, Architecture Components, Room, Retrofit, Material Components, CI/CD.
https://github.com/dheerajkotwani/cinewatch
android ci-cd coil coroutines dagger-hilt kotlin livedata mvvm navigation-graph paging3 retrofit2 room tmdb viewbinding viewmodel
Last synced: 6 months ago
JSON representation
🎥 A minimalistic movie listing app to browse movies using TMDB API, 📲 built to demonstrate MVVM Architecture, Kotlin, Coroutines, Dagger 2/Hilt, Architecture Components, Room, Retrofit, Material Components, CI/CD.
- Host: GitHub
- URL: https://github.com/dheerajkotwani/cinewatch
- Owner: dheerajkotwani
- License: mit
- Created: 2021-03-18T18:04:13.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-07-01T06:00:24.000Z (over 2 years ago)
- Last Synced: 2025-03-26T14:39:43.526Z (6 months ago)
- Topics: android, ci-cd, coil, coroutines, dagger-hilt, kotlin, livedata, mvvm, navigation-graph, paging3, retrofit2, room, tmdb, viewbinding, viewmodel
- Language: Kotlin
- Homepage:
- Size: 14.9 MB
- Stars: 35
- Watchers: 1
- Forks: 10
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# CineWatch 🎥
A minimalistic movie listing app to browse movies using TMDB Api, built to demonstrate MVVM Architecture with latest hot-trending Android development tools including Dependency Injection, Room and many more.
[](https://github.com/dheerajkotwani/CineWatch/blob/master/LICENSE)





## Features 🚀
- Explore the Upcoming, Popular and Top Rated Movies.
- Get detailed decription of all the movies.
- Get details about the Cast and Crew members.
- Bookmark your favourite movies.
- Get movies trailer within the application.
- Search for movies.## Built With 🛠
- [Kotlin](https://kotlinlang.org/) - First class and official programming language for Android development.
- [Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) - For asynchronous and more..
- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - Collection of libraries that help you design robust, testable, and maintainable apps.
- [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) - Data objects that notify views when the underlying database changes.
- [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) - Stores UI-related data that isn't destroyed on UI changes.
- [ViewBinding](https://developer.android.com/topic/libraries/view-binding) - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- [Room](https://developer.android.com/topic/libraries/architecture/room) - SQLite object mapping library.
- [Paging 3](https://developer.android.com/topic/libraries/architecture/paging/v3-overview) - The Paging library helps you load and display pages of data from a larger dataset from local storage or over network.
- [Navigation Graph](https://developer.android.com/guide/navigation/navigation-design-graph) - The Navigation component uses a navigation graph to manage your app's navigation.
- [Dagger 2](https://dagger.dev/) - Dependency Injection Framework
- [Retrofit](https://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java.
- [Coil](https://github.com/coil-kt/coil/) - An image loading library for Android backed by Kotlin Coroutines.
- [Material Components for Android](https://github.com/material-components/material-components-android) - Modular and customizable Material Design UI components for Android.## Download 📥
- Download the latest APK build from [here](https://github.com/dheerajkotwani/CineWatch/releases/download/refs%2Fheads%2Fmaster/app.apk)## Screenshots 📷
## Dark Mode Available 🌙
## Architecture 🗼
This project follows the famous MVVM architecture and best practices from Google's
[GithubBrowserSample](https://github.com/android/architecture-components-samples/tree/master/GithubBrowserSample)
## Project Structure 📂
```
.
├── CineWatch.kt
├── data
| |
| ├── api
| | ├── NetworkService.kt
| | └── SafeApiRequest.kt
│ ├── local
│ │ ├── BookmarkDatabase.kt
│ │ └── dao
│ │ └── BookmarkDao.kt
│ ├── model
│ │ ├── Actor.kt
│ │ ├── Cast.kt
│ │ ├── CastCreditResponse.kt
│ │ ├── Genre.kt
│ │ ├── Movie.kt
│ │ ├── MovieCreditsResponse.kt
│ │ ├── MovieDB.kt
│ │ ├── MovieResponse.kt
│ │ ├── Resourse.kt
│ │ ├── State.kt
│ │ ├── Video.kt
│ │ └── VideoResponse.kt
│ └── repository
│ └── NetworkRepository.kt
├── di
│ └── module
│ ├── ApiModule.kt
│ └── DatabaseModule.kt
├── ui
│ ├── SplashScreenActivity.kt
│ ├── adapter
│ | ├── BestMoviesRecyclerViewAdapter.kt
│ | ├── BookmarkRecyclerViewAdapter.kt
│ | ├── CastRecyclerViewAdapter.kt
│ | ├── HomeRecyclerViewAdapter.kt
│ | ├── HomeViewPagerAdapter.kt
│ | ├── SearchRecyclerViewAdapter.kt
│ | ├── SimilarMoviesRecyclerViewAdapter.kt
│ | └── ViewAllRecyclerViewAdapter.kt
│ ├── details
│ | ├── ActorDetailsFragment.kt
│ | ├── ActorDetailsViewModel.kt
│ | ├── MovieDetailsFragment.kt
│ | └── MovieDetailsViewModel.kt
│ ├── dialog
│ | └── VideoPlayer.kt
│ ├── home
│ | ├── HomeFragment.kt
│ | └── HomeViewModel.kt
│ ├── list
│ | ├── ViewAllFragment.kt
│ | └── ViewAllViewModel.kt
│ ├── main
│ | ├── MainActivity.ky
│ | └── viewpager
│ | └── HomeViewPagerFragment.kt
│ ├── paging
│ | ├── PopularPagingSource.kt
│ | ├── SearchPagingSource.kt
│ | ├── TopRatedPagingSource.kt
│ | └── UpcomingPagingSource.kt
│ └── search
│ ├── SearchFragment.kt
│ └── SearchViewModel.kt
└── utils
├── ActivityUtils.kt
├── CONSTANTS.kt
├── FragmentUtils.kt
├── NetworkUtils.kt
├── PlaceHolderUtils.kt
├── TimeUtils.kt
└── ViewUtils.kt
```## Requirements 🎯
- Android 5.0 and Above
- Min sdk version 21## Permissions 💻
- Internet## Donate 💲
##### If you like the project and wanna support me develop new stuff, You can buy me a coffee.### If you liked the project don't forget to star 🌟 and fork 🍽 the project.


