Kotlin Kapt's Hidden Test Costs TL;DR Kapt will run on your test builds even if you didn't ask it to.
Dagger Party Tricks Dagger Party Tricks: Extension Functions Extension functions in Dagger for fun and profit.
Kotlin It's Nothing Nothing is a special type in Kotlin often used for errors. Is that all it's useful for though?
Moshi A Closer Look At Moshi 1.9 Moshi 1.9 is here! It's been in the oven for a year and excited to have it out there. This post takes a closer look at its changes.
Kotlin @JvmDefault: More Useful Than You Think @JvmDefault is an annotation + compiler flag in Kotlin to enable using Java 8 default interface methods. It does more than it leads on though! This post explores some other bytecode optimizations you can gain with it as well as some hidden behaviors you should be aware of.
API Design API Design Case Studies: Intersection Types My team recently cleaned up an API in an internal storage library. While it’s a simple case, it covers a couple interesting language tools and tradeoffs. Let’s dig
AutoDispose Announcing AutoDispose 1.0 About two years ago, just after migrating my CatchUp side project to RxJava 2, I started a branch called “boundObservers” to try out an idea I had for RxLifecycle-style automatic
Moshi Moshi Kotlin Code Gen: An Open Source Story For context — see the previous post I wrote about Moshi’s new Kotlin code gen support. This blog is a somewhat technical, mostly personal account of how it came to be. OriginsMoshi’s Kotlin code gen has an interesting backstory. It started as a
Moshi Exploring Moshi’s Kotlin Code Gen Moshi’s namesake: a Frenchie named MoshiIntroductionMoshi 1.6 was recently released with a brand new Kotlin code gen artifact. It’s an alternative to the existing reflection-based artifact, and in my opinion one of the most interesting recent evolutions in Kotlin’s open
CatchUp Catching Up on CatchUp: A Dagger-powered Plugin System For context — see the introduction post. This is part of a series of technical deep dives into different things I’ve learned along the way. This post assumes some prior knowledge of Dagger. In CatchUp, the principle architecture is that you have a set