All Posts

Getting arbitrary properties from unknown classes with KProperty

Getting arbitrary properties from unknown classes with KProperty

The Kproperty class is powerful and useful.

Coroutines Introduction Video

Coroutines Introduction Video

A video presentation on coroutines, a talk I gave at GDG Cape Town

Using the synchronized keyword in coroutines?

Using the synchronized keyword in coroutines?

Working with coroutines is subtly different from normal locking functions. Introduce some thread-safety with mutex.

Escaping Callback Hell with Generic SuspendCoroutine Infix Extension Functions

Escaping Callback Hell with Generic SuspendCoroutine Infix Extension Functions

Callback hell happens all the time in Android. Luckily, with coroutines, there’s an easy way out.

The Problem with Kotlin Kfunction Receiver Functions

The Problem with Kotlin Kfunction Receiver Functions

KFunction can be written in more than one way. Here’s a list of analogues, plus some criticism of the Receiver Function.

Creating and Deploying an Android Library via CircleCI

Creating and Deploying an Android Library via CircleCI

This is the template I use to create new Android libraries with CircleCI support for Continuous Deployment.

Generics + Reflection + Type Inference + Reified Type = Kotlin Magic

Generics + Reflection + Type Inference + Reified Type = Kotlin Magic

With Kotlin, it’s easier than ever to code with reflection and generics. This post attempts to give one example.

Don't Pass Around Your Room/Database Entity

Don't Pass Around Your Room/Database Entity

If you’re thinking of modularizing your Android App and you use Android Room, you should not pass around your Room Entity.

Is your modularization making any progress?

Is your modularization making any progress?

You should modularize your Kotlin Android app, since it’s the best way to enforce separation of concerns, but how do you know if you’re doing it right? Here’s some tips to help.

How I Made This Website

How I Made This Website

This details how I made this static github page.