MaterialReads is an Android client for Goodreads. I was never happy with the Goodreads Android app, so I decided to make my own. During the development process, I decided to try writing the app in Kotlin. I generally prefer using mature and stable technologies like Java, but wanted to try Kotlin due to the constant chatter about the programming language in the Android community. Without going too further into what Kotlin is like, I have decided to write all of my future Android apps in Kotlin now (yes, it’s that much more enjoyable to write than Java).

The biggest challenge of this project wasn’t learning Kotlin nor Android development itself, but working with the Goodreads API. Goodreads API is poorly documented and inconsistent, and thus was difficult to work with. Also, the API tends to return way too much attributes for various data than it needs to, which throttles performance of the app. This is where I thought perhaps the GraphQL guys had a point when it came to specifically requesting only the attributes you need for your client side app.

Anyways, this was my first solo Android project and first project that I completed on my free time in a long time.