This is a sandbox with examples of how to setup and solve common issues.
https://github.com/appspell/Scratch/tree/download-in-background
Download file from server using Retrofit with WorkerManager. here
Worker
WorkManager
Retrofit
Permissions
https://github.com/appspell/Scratch/tree/custom_view
Simple CustomView.kt that draws a square at the middle of the view.
CustomView
Canvas
https://github.com/appspell/Scratch/tree/db
Add and remove entities using RxJava. here
App adds a new row into a table per each second and observes result using RxJava Flowable in real-time.
RxJava
Room
Flowable
Dagger
https://github.com/appspell/Scratch/tree/mvvm
Request a list of items from a server and show it in the RecyclerView using a simple implementation of DiffUtils. RecyclerView's adapter uses DataBinding.
AndroidX
Retrofit
Dagger
RxJava2
ViewModel
LiveData
DataBindings