Chris Banes

This is my personal blog and any views expressed here are mine, and mine alone.

Kotlin Coroutines, RxJava

RxJava to Kotlin coroutines

This post is a summary of how I refactored an app which uses RxJava pretty heavily, to one which uses Kotlin coroutines too. Specifically I’ll talk about switching out Single/Maybe/Completable sources to coroutines.
Chris Banes
WindowInsets, Animations

Windows Insets + Fragment Transitions

A look at how to get fragment transitions working when using WindowInsets
Chris Banes
Animations, Fragments

Fragment Transitions

Using transitions with fragments has a few gotchas, this blog post looks at how to get it all working.
Chris Banes
Room

Room + Date / Time

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.
Chris Banes
Nested Scrolling, AppBarLayout, Animations

Carry on Scrolling

A look at how we added fling support to nested scrolling in Android, to AppBarLayout work in all scenarios.
Chris Banes
Website, Jekyll, Firebase

Jekyll + Firebase Hosting

A look at how this site is built using Jekyll, and automatically deployed to Firebase Hosting.
Chris Banes
Animations

Why isn’t my animation running?

Let me tell you a story about something I spent a fair amount of time debugging last year. I had totally forgot about it until the other day when someone mentioned something they were seeing with Snackbar, and it turned out to be the same thing.
Chris Banes
Dark Theme, AppCompat

DayNight — Adding a dark theme to your app

This post has been updated multiple time since first publishing. The content is correct as-of March 13th 2019. The DayNight functionality in AppCompat allows your app to easily switch between a dark ⚫ and light ⚪ theme. This has many benefits for your users, especially if you have a content-heavy app (such as a Reddit client). How do I use it? You need to change your theme to extend from one of the DayNight variants, and then call one method to enable the feature. Here’s an example theme decla
Chris Banes
AppCompat, Vector Drawable

AppCompat v23.2 — Age of the vectors

As you may have seen on the Support Lib 23.2.0 blog post, we now have compatible vector drawable implementations in the support libraries: VectorDrawableCompat and Animated VectorDrawableCompat. Those are implemented as standalone pieces of functionality. As we know that developers want to use them from resources, we’ve added support for vector drawables directly into AppCompat. There are various reasons for this integration, including: * Allows developers to easily use <vector> drawables on
Chris Banes