Kotlin android application example with MVVM pattern, android architecture components, and kotlin coroutine.This sample is about soccer match schedules which the API i used from theSportDb. You can read the article that I write to talk about this sample app. This sample app is based on the Guide to app architecture article with the androidx package, Kotlin 1.3, and production ready coroutine. I use several android architecture components like LiveData, ViewModel ,Room. Here are several libraries that i use:
- Coroutine 1.0.0 // Threading
- Material 1.0.0 // Design components
- ViewModel
- LiveData
- Room // Local data storage
- Retrofit // Networking
- Moshi // JSON parser
- Picasso // Image loader
- Mockito // Unit test
- Espresso // UI test
The architecture overview:
There are several external sample i take to create this sample, primarily from this google Github Browser Sample app. For this app i use the NetworkBoundResource for common implementation to fetch and cache resource from the internet. It also have abstract functions such as whether we should fetch data from internet or not. If the device is offline, the repository will return the last cached data. Almost all data returned from the repository that fetched from the network is wrapped in a Resource object to determine the data status whether it is loading
, success
, or error
.
Try the app at Play Store. Feel free to create new issues for bug or request more features.