Suspending over Views

Kotlin Coroutines allow us to model asynchronous problems like synchronous code. That’s great, but most usage seems to concentrate on I/O tasks and concurrent operations. Coroutines are great at modelling...

Suspending over Views — Example

This blog post is the second of two which explores how coroutines enables you to write complex asynchronous UI operations in a much simpler way. The first post goes through...

WindowInsets — Listeners to layouts

If you’ve watched my Becoming a Master Window Fitter talk, you’ll know that handling window insets can be complex. Recently I’ve been improving system bar handling in a few apps,...

Data Binding — Lessons Learnt

The Data Binding Library (referred to as the ‘DB library’ for the rest of this post) offers a flexible and powerful way to bind data to your UIs, but to...

CircleCI cache key over many files

Here’s a quick tip for those of you using CircleCI. One of the ways to improve your build times is by caching your dependencies. This enables you to only fetch...