{"id":17077169,"url":"https://github.com/dheerajkotwani/cinewatch","last_synced_at":"2025-04-12T20:22:22.645Z","repository":{"id":39373799,"uuid":"349171972","full_name":"dheerajkotwani/CineWatch","owner":"dheerajkotwani","description":"🎥 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.","archived":false,"fork":false,"pushed_at":"2023-07-01T06:00:24.000Z","size":15662,"stargazers_count":35,"open_issues_count":1,"forks_count":10,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T14:39:43.526Z","etag":null,"topics":["android","ci-cd","coil","coroutines","dagger-hilt","kotlin","livedata","mvvm","navigation-graph","paging3","retrofit2","room","tmdb","viewbinding","viewmodel"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dheerajkotwani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-18T18:04:13.000Z","updated_at":"2024-11-10T16:25:27.000Z","dependencies_parsed_at":"2022-09-09T16:01:56.627Z","dependency_job_id":null,"html_url":"https://github.com/dheerajkotwani/CineWatch","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dheerajkotwani%2FCineWatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dheerajkotwani%2FCineWatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dheerajkotwani%2FCineWatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dheerajkotwani%2FCineWatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dheerajkotwani","download_url":"https://codeload.github.com/dheerajkotwani/CineWatch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248626417,"owners_count":21135658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ci-cd","coil","coroutines","dagger-hilt","kotlin","livedata","mvvm","navigation-graph","paging3","retrofit2","room","tmdb","viewbinding","viewmodel"],"created_at":"2024-10-14T12:12:57.281Z","updated_at":"2025-04-12T20:22:22.606Z","avatar_url":"https://github.com/dheerajkotwani.png","language":"Kotlin","funding_links":["https://www.buymeacoffee.com/dheerajkotwani"],"categories":[],"sub_categories":[],"readme":"![](./Assets/header.png)\n\n# CineWatch 🎥\n\nA 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.\n\n[![License](https://img.shields.io/badge/license-MIT-%2397ca00.svg)](https://github.com/dheerajkotwani/CineWatch/blob/master/LICENSE)\n![UI Library shield](https://img.shields.io/badge/LibraryType-UI-blue.svg)\n![Sample App shield](https://img.shields.io/badge/App-Sample-green.svg)\n![Artifact badge local, or jcenter or clonerepo](https://img.shields.io/badge/Artifact-JCenter-green.svg)\n![Minimum API Level](https://img.shields.io/badge/Min%20API%20Level-21-green)\n![Maximum API Level](https://img.shields.io/badge/Max%20API%20Level-30-orange)\n![GitHub repo size](https://img.shields.io/github/repo-size/dheerajkotwani/CineWatch)\n\n\u003ca href='https://play.google.com/store/apps/details?id=project.dheeraj.cinewatch'\u003e\u003cimg align='center' height='85' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png'\u003e\u003c/a\u003e\n\n## Features 🚀\n\n- Explore the Upcoming, Popular and Top Rated Movies.\n- Get detailed decription of all the movies.\n- Get details about the Cast and Crew members.\n- Bookmark your favourite movies.\n- Get movies trailer within the application.\n- Search for movies.\n\n## Built With 🛠\n\n- [Kotlin](https://kotlinlang.org/) - First class and official programming language for Android development.\n- [Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) - For asynchronous and more..\n- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - Collection of libraries that help you design robust, testable, and maintainable apps.\n  - [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) - Data objects that notify views when the underlying database changes.\n  - [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) - Stores UI-related data that isn't destroyed on UI changes. \n  - [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.\n  - [Room](https://developer.android.com/topic/libraries/architecture/room) - SQLite object mapping library.\n  - [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. \n- [Navigation Graph](https://developer.android.com/guide/navigation/navigation-design-graph) - The Navigation component uses a navigation graph to manage your app's navigation.  \n- [Dagger 2](https://dagger.dev/) - Dependency Injection Framework\n- [Retrofit](https://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java.\n- [Coil](https://github.com/coil-kt/coil/) - An image loading library for Android backed by Kotlin Coroutines.\n- [Material Components for Android](https://github.com/material-components/material-components-android) - Modular and customizable Material Design UI components for Android.\n\n## Download 📥\n- Download the latest APK build from [here](https://github.com/dheerajkotwani/CineWatch/releases/download/refs%2Fheads%2Fmaster/app.apk)\n\n## Screenshots 📷 \n![light_screenshot](Assets/screen_shot1.png)\n\n## Dark Mode Available 🌙\n![dark_screenshots](Assets/screen_shot2.png)\n\n## Architecture 🗼\n\nThis project follows the famous MVVM architecture and best practices from Google's \n[GithubBrowserSample](https://github.com/android/architecture-components-samples/tree/master/GithubBrowserSample)\n![architecture](Assets/mvvm_architecture.png)\n\n## Project Structure 📂\n\n```\n.\n├── CineWatch.kt\n├── data\n|   |\n|   ├── api\n|   |   ├── NetworkService.kt\n|   |   └── SafeApiRequest.kt\n│   ├── local\n│   │   ├── BookmarkDatabase.kt\n│   │   └── dao\n│   │     └── BookmarkDao.kt\n│   ├── model\n│   │   ├── Actor.kt\n│   │   ├── Cast.kt\n│   │   ├── CastCreditResponse.kt\n│   │   ├── Genre.kt\n│   │   ├── Movie.kt\n│   │   ├── MovieCreditsResponse.kt\n│   │   ├── MovieDB.kt\n│   │   ├── MovieResponse.kt\n│   │   ├── Resourse.kt\n│   │   ├── State.kt\n│   │   ├── Video.kt\n│   │   └── VideoResponse.kt\n│   └── repository\n│       └── NetworkRepository.kt\n├── di\n│   └── module\n│       ├── ApiModule.kt\n│       └── DatabaseModule.kt\n├── ui\n│   ├── SplashScreenActivity.kt\n│   ├── adapter\n│   |   ├── BestMoviesRecyclerViewAdapter.kt\n│   |   ├── BookmarkRecyclerViewAdapter.kt\n│   |   ├── CastRecyclerViewAdapter.kt\n│   |   ├── HomeRecyclerViewAdapter.kt\n│   |   ├── HomeViewPagerAdapter.kt\n│   |   ├── SearchRecyclerViewAdapter.kt\n│   |   ├── SimilarMoviesRecyclerViewAdapter.kt \n│   |   └── ViewAllRecyclerViewAdapter.kt\n│   ├── details\n│   |   ├── ActorDetailsFragment.kt\n│   |   ├── ActorDetailsViewModel.kt\n│   |   ├── MovieDetailsFragment.kt\n│   |   └── MovieDetailsViewModel.kt\n│   ├── dialog\n│   |   └── VideoPlayer.kt\n│   ├── home\n│   |   ├── HomeFragment.kt\n│   |   └── HomeViewModel.kt\n│   ├── list\n│   |   ├── ViewAllFragment.kt\n│   |   └── ViewAllViewModel.kt\n│   ├── main\n│   |   ├── MainActivity.ky\n│   |   └── viewpager\n│   |       └── HomeViewPagerFragment.kt\n│   ├── paging\n│   |   ├── PopularPagingSource.kt\n│   |   ├── SearchPagingSource.kt\n│   |   ├── TopRatedPagingSource.kt\n│   |   └── UpcomingPagingSource.kt \n│   └── search\n│       ├── SearchFragment.kt\n│       └── SearchViewModel.kt\n└── utils\n    ├── ActivityUtils.kt \n    ├── CONSTANTS.kt\n    ├── FragmentUtils.kt\n    ├── NetworkUtils.kt\n    ├── PlaceHolderUtils.kt\n    ├── TimeUtils.kt\n    └── ViewUtils.kt\n```\n\n## Requirements 🎯 \n- Android 5.0 and Above\n- Min sdk version 21\n\n## Permissions 💻\n- Internet\n\n## Donate 💲\n##### If you like the project and wanna support me develop new stuff, You can buy me a coffee.\n\u003ca href=\"https://www.buymeacoffee.com/dheerajkotwani\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-orange.png\" alt=\"Buy Me A Coffee\" align='center' height='60'\u003e\u003c/a\u003e\n\n### If you liked the project don't forget to star 🌟 and fork 🍽 the project.\n![forthebadge](https://forthebadge.com/images/badges/built-with-love.svg)\n![ForTheBadge ANDROID](https://forthebadge.com/images/badges/built-for-android.svg)\n![ForTheBadge GIT](https://forthebadge.com/images/badges/uses-git.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdheerajkotwani%2Fcinewatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdheerajkotwani%2Fcinewatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdheerajkotwani%2Fcinewatch/lists"}