Skip to main content


WindowInsets — Listeners to layouts
·1505 words·8 mins
If you’ve watched my ‘Becoming a Master Window Fitter’ talk, you’ll know that handling window insets can be complex.
Data Binding — Lessons Learnt
·1512 words·8 mins
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 use an old cliché: ‘with great power comes great responsibility’.
CI cache key over many files
·487 words·3 mins
Here’s a quick tip for those of you using CircleCI, GitHub Actions, or any other CI which supports caching.
RxJava to Kotlin coroutines
·1640 words·8 mins
OK, I know this is a bit of a clickbait-y title but it’s the best I could come up with.
Windows Insets + Fragment Transitions
·869 words·5 mins
This post is the second in a small series I’m writing about fragment transitions.
Fragment Transitions
·802 words·4 mins
This is the first post in a small post series where I explore how to get transitions working nicely with fragments.
Room + Date / Time
·1393 words·7 mins
If you’ve started using Room (and you should if you haven’t), there’s a high probability that you will need to store + retrieve some kind of date/time.
Carry on Scrolling
·1117 words·6 mins
If you’ve used the Material Design Components library (formerly known as the design support library), and specifically its scrolling components such as AppBarLayout, you probably noticed that flinging can sometimes stop quite abruptly.
Jekyll + Firebase Hosting
·1396 words·7 mins
This site is built with Jekyll and was hosted on GitHub Pages until recently, with all of the commit-to-deploy goodness that it gives you for free.
Why isn’t my animation running?
·229 words·2 mins
Note: this post is quite old now. As you can see below this isn’t an issue from Android 7.