πΏ
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