Chris Banes

Android Software Engineer with a love of writing user interfaces

Jetpack Compose, Kotlin, Android UI

Composable metrics

Exploring the Compose Compiler metrics to see what we can find out about the performance of our composables.
Jetpack Compose, Android UI

Slotting in with Compose UI

The Slot API pattern is a pattern which is used extensively throughout the Compose UI codebase. This post explores the benefits of using the pattern in your own composables.
Jetpack Compose, Android UI

Always provide a Modifier parameter

Modifiers are probably my favourite thing in Compose. They truly encapsulate the idea of composition over inheritance, by providing a number of interfaces and implementations to attach logic and behavior to layouts.
Google, AppCompat

Becoming a Xoogler

At the end of next week I will be leaving my job at Google and moving on to a new challenge outside $GOOG.
Android Libraries

Publishing to Maven Central

A collection of resources which make it easy to publish your library to Maven Central.

New website... again

How I migrated my personal site to use the JAMStack model, using Ghost and Gatsby to completely over-engineer my personal humble blog and website.
Kotlin, Kotlin Coroutines, Animations

Suspending over Views

How to Kotlin Coroutines can be used for animations and more with views.
Kotlin, Kotlin Coroutines, Animations

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 the theory, while this post demonstrates how they fix a problem.
WindowInsets, Data Binding

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, enabling them to draw behind the status and navigation bars.