Nasa Astronomy Photo Of The Day

Personal project

A Kotlin Android app demonstrating a modern architecture consisting of Kotlin, MVVM, RxJava, Koin, LiveData and lifecycle aware ViewModels.

View state is represented by an immutable data class emitted as a LiveData subscription from the ViewModels.

View project on Github


MVVM, Android Arch ViewModel, RxJava, RxAndroid, LiveData, Koin


Junit, Mockito, Espresso

Building the project

To build the project, you will need your own auth token for the NASA APOD API (sign up here). If you don’t follow the steps below, the project will not compile.

Once you have a key, you will need to make it available as a file. Navigate to ‘$HOME/.gradle/’ and if a file does not exist, create it.

Add the following to the file, replacing XYZ for your NASA API key.


After a project refresh, you should see the file in the Android Studio project browser view under ‘Gradle Scripts’. Switch to the Android view if you don’t see ‘Gradle Scripts’