TopCorn2
TopCorn2 copied to clipboard
A minimalistic movie listing app to browse IMDB's top 250 movies, built to demonstrate MVVM with Jetpack Compose.
TopCorn 2 πΏ
A minimalistic movie listing app to browse IMDB's top 250 movies, built to demonstrate MVVM with Jetpack Compose.
Try latest TopCorn2 app apk from below π
Designs - Dark Mode Available π
Built With π
- Kotlin - First class and official programming language for Android development.
- Coroutines - For asynchronous and more..
- Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- Compose - Androidβs modern toolkit for building native UI.
- Navigation - A set of libraries, a plugin, and tooling that simplifies Android navigation.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- Hilt - Dependency Injection Framework
- Retrofit - A type-safe HTTP client for Android and Java.
- Moshi - A modern JSON library for Kotlin and Java.
- Moshi Converter - A Converter which uses Moshi for serialization to and from JSON.
- Coil - An image loading library for Android.
- Material Components for 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
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.kt
21 directories, 34 files
Ohh you hate Compose? NP π€·
Well, we've XML version here, The TopCorn 1
Credits π€
- π€ Icons are from flaticon.com
- ποΈ Design inspired from AnimeXStream
- π½ Data from top250 API
- π Thanks Foodium
TODO ποΈ
- [ ] Improve algorithms and code review
- [ ] Add test cases