A minimalistic movie listing app to browse IMDB's top 250 movies, built to demonstrate MVVM with latest hot-trending Android development tools.
- Download latest APK from here
- 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.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- LiveData - Data objects that notify views when the underlying database changes.
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- ViewBinding - 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 - SQLite object mapping library.
- Dagger 2 - 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.
- Glide - An image loading library for Android backed by Kotlin Coroutines.
- Material Components for Android - Modular and customizable Material Design UI components for Android.
- TwinKill - A simple library, a collection of utility classes wrapped around JetPack components
- MaterialColors - Android material color palettes
This project follows the famous MVVM architecture and best practices from Google's GithubBrowserSample
. ├── App.kt ├── data │ ├── local │ │ ├── AppDatabase.kt │ │ ├── Converters.kt │ │ ├── daos │ │ │ └── MoviesDao.kt │ │ └── entities │ ├── remote │ │ ├── ApiInterface.kt │ │ └── Movie.kt │ └── repositories │ └── movies │ └── MoviesRepo.kt ├── di │ ├── components │ │ └── AppComponent.kt │ └── modules │ ├── ActivitiesBuilderModule.kt │ ├── AppModule.kt │ ├── DatabaseModule.kt │ ├── NetworkModule.kt │ ├── RepoModule.kt │ └── ViewModelModule.kt ├── models │ └── FeedItem.kt ├── ui │ ├── activities │ │ ├── feed │ │ │ ├── FeedActivity.kt │ │ │ └── FeedViewModel.kt │ │ ├── movie │ │ │ ├── MovieActivity.kt │ │ │ └── MovieViewModel.kt │ │ ├── splash │ │ │ ├── SplashActivity.kt │ │ │ └── SplashViewModel.kt │ └── adapters │ ├── FeedAdapter.kt │ └── MoviesAdapter.kt └── utils ├── BindingAdapters.kt ├── NetworkBoundResource.kt ├── retrofit │ ├── FlowResourceCallAdapterFactory.kt │ └── FlowResourceCallAdapter.kt └── test ├── EspressoIdlingResource.kt └── OpenForTesting.kt 21 directories, 30 files - 🤓 Icons are from flaticon.com
- 🖌️ Design inspired from AnimeXStream
- 💽 Data from top250 API
- 📄 Thanks Foodium
- Improve algorithms and code review
- Add test cases
- Integrate OMDB API to add search feature
- Add favorites
- theapache64



