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