Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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:

The architecture overview:

Guide to app architecture

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.


No releases published


No packages published