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

Architecture

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

Testing

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 gradle.properties file. Navigate to ‘$HOME/.gradle/’ and if a gradle.properties file does not exist, create it.

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

nasaApiKey="ABCDEFGHIJKLMNOPQRSTUVWXYZ"

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