MVVM architecture using the Google recommended Android Lifecycle Extensions
Retrofit and JSON for remote server communication
RxJava as a reactive framework
Dagger2 for dependency injection
Jetpack Data Binding for building UI screens
Glide for seamless image loading
Unit tests to test the application and make it stable and robust
And built everything in Kotlin