Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thecodemonks/topcorn2
A minimalistic movie listing app to browse IMDB's top 250 movies, built to demonstrate MVVM with Jetpack Compose.
https://github.com/thecodemonks/topcorn2
android-mvvm jetpack-compose jetpack-navigation retrofit2-kotlin
Last synced: 2 months ago
JSON representation
A minimalistic movie listing app to browse IMDB's top 250 movies, built to demonstrate MVVM with Jetpack Compose.
- Host: GitHub
- URL: https://github.com/thecodemonks/topcorn2
- Owner: TheCodeMonks
- License: apache-2.0
- Created: 2021-01-03T12:37:28.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-11-08T03:41:02.000Z (about 2 years ago)
- Last Synced: 2024-05-01T15:33:32.869Z (9 months ago)
- Topics: android-mvvm, jetpack-compose, jetpack-navigation, retrofit2-kotlin
- Language: Kotlin
- Homepage:
- Size: 10.8 MB
- Stars: 126
- Watchers: 4
- Forks: 21
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![GitHub Cards Preview](https://github.com/TheCodeMonks/topcorn2/blob/master/extras/topcorn2_coverart.jpg?raw=true)
# TopCorn 2 πΏ
A minimalistic movie listing app to browse IMDB's top 250 movies,
built to *demonstrate MVVM with Jetpack Compose*.[![GitHub issues](https://img.shields.io/github/issues/TheCodeMonks/topcorn2)](https://github.com/TheCodeMonks/topcorn2/issues)
[![GitHub forks](https://img.shields.io/github/forks/TheCodeMonks/topcorn2)](https://github.com/TheCodeMonks/topcorn2/network)
[![GitHub stars](https://img.shields.io/github/stars/TheCodeMonks/topcorn2)](https://github.com/TheCodeMonks/topcorn2/stargazers)
[![GitHub license](https://img.shields.io/github/license/TheCodeMonks/topcorn2)](https://github.com/TheCodeMonks/topcorn2/blob/master/LICENSE)
[![Twitter](https://img.shields.io/twitter/url?style=social)](https://twitter.com/intent/tweet?text=Wow:&url=https%3A%2F%2Fgithub.com%2FTheCodeMonks%2Ftopcorn2)***Try latest TopCorn2 app apk from below π***
[![TopCorn2](https://img.shields.io/badge/TopCorn2πΏ-APK-black.svg?style=for-the-badge&logo=android)](https://github.com/TheCodeMonks/topcorn2/releases/latest/download/app-debug.apk)
## Designs - Dark Mode Available π
![dark_screenshots](extras/screenshot_light.png)
![dark_screenshots](extras/screenshot_dark.png)
## 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..
- [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/) - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- [Compose](https://developer.android.com/jetpack/compose) - Androidβs modern toolkit for building native UI.
- [Navigation](https://developer.android.com/guide/navigation) - A set of libraries, a plugin, and tooling that simplifies Android navigation.
- [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.
- [Room](https://developer.android.com/topic/libraries/architecture/room) - SQLite object mapping library.
- [Hilt](https://dagger.dev/hilt/) - Dependency Injection Framework
- [Retrofit](https://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java.
- [Moshi](https://github.com/square/moshi) - A modern JSON library for Kotlin and Java.
- [Moshi Converter](https://github.com/square/retrofit/tree/master/retrofit-converters/moshi) - A Converter which uses Moshi for serialization to and from JSON.
- [Coil](https://github.com/chrisbanes/accompanist/blob/main/coil/README.md) - An image loading library for Android.
- [Material Components for Android](https://github.com/material-components/material-components-android) - Modular and customizable Material Design UI components for Android.
## 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)
![](extras/arch.jpg)
## Project Structure π
```
βββ App.kt
βββ data
βΒ Β βββ local
βΒ Β βΒ Β βββ AppDatabase.kt
βΒ Β βΒ Β βββ Converters.kt
βΒ Β βΒ Β βββ daos
βΒ Β βΒ Β βββ MoviesDao.kt
βΒ Β βββ remote
βΒ Β βΒ Β βββ ApiInterface.kt
βΒ Β βΒ Β βββ Movie.kt
βΒ Β βββ repo
βΒ Β βββ MoviesRepo.kt
βββ di
βΒ Β βββ modules
βΒ Β βββ DatabaseModule.kt
βΒ Β βββ NetworkModule.kt
βΒ Β βββ PreferenceModule.kt
βββ model
βΒ Β βββ Category.kt
βββ ui
βΒ Β βββ common
βΒ Β βΒ Β βββ Fakes.kt
βΒ Β βΒ Β βββ Poster.kt
βΒ Β βΒ Β βββ RetryMessage.kt
βΒ Β βββ main
βΒ Β βΒ Β βββ MainActivity.kt
βΒ Β βΒ Β βββ MainViewModel.kt
βΒ Β βββ screen
βΒ Β βΒ Β βββ detail
βΒ Β βΒ Β βΒ Β βββ MovieDetailFragment.kt
βΒ Β βΒ Β βΒ Β βββ MovieDetailScreen.kt
βΒ Β βΒ Β βΒ Β βββ MovieDetailViewModel.kt
βΒ Β βΒ Β βββ movies
βΒ Β βΒ Β βΒ Β βββ MoviesFragment.kt
βΒ Β βΒ Β βΒ Β βββ MoviesScreen.kt
βΒ Β βΒ Β βΒ Β βββ MoviesViewModel.kt
βΒ Β βΒ Β βββ splash
βΒ Β βΒ Β βββ SplashFragment.kt
βΒ Β βΒ Β βββ SplashScreen.kt
βΒ Β βΒ Β βββ SplashViewModel.kt
βΒ Β βββ test
βΒ Β βΒ Β βββ TestActivity.kt
βΒ Β βΒ Β βββ TestViewModel.kt
βΒ Β βββ theme
βΒ Β βββ Theme.kt
βΒ Β βββ Typography.kt
βββ utils
βββ calladapter
βΒ Β βββ flow
βΒ Β βββ FlowResourceCallAdapterFactory.kt
βΒ Β βββ FlowResourceCallAdapter.kt
βΒ Β βββ Resource.kt
βββ flow
βΒ Β βββ EventFlow.kt
βββ NetworkBoundResource.kt21 directories, 34 files
```## Ohh you hate Compose? NP π€·
Well, we've XML version here, The [TopCorn 1](https://github.com/theapache64/topcorn)
## Credits π€
- π€ Icons are from [flaticon.com](https://www.flaticon.com/)
- ποΈ Design inspired from [AnimeXStream](https://github.com/mukul500/AnimeXStream)
- π½ Data from [top250 API](https://github.com/theapache64/top250)
- π Thanks [Foodium](https://github.com/patilshreyas/Foodium)
## TODO ποΈ
- [ ] Improve algorithms and code review
- [ ] Add test cases