Simple app that shows how to architect an android app in a clean architecture with kotlin coroutines.
It simply shows a list of photo that is fetched from unsplash api

- 
DataBinding Declaratively bind observable data to UI elements.
 - 
Lifecycle Create a UI that automatically responds to lifecycle events.
 - 
LiveData Build data objects that notify views when the underlying database changes.
 - 
ViewModel Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
 
- Glide An image loading and caching library for Android focused on smooth scrolling.
 
- 
Retrofit2 Type-safe HTTP client for Android and Java by Square, Inc.
 - 
OkHttp An HTTP+HTTP/2 client for Android and Java applications.
 
- Kotlin Coroutines Coroutines is a rich library for coroutines developed by JetBrains. It contains a number of high-level coroutine-enabled primitives that this guide covers, including launch, async and others.
 
- Koin A pragmatic lightweight dependency injection framework for Kotlin developers.
 
- Implement data caching