Chris Banes

Chris Banes

@chrisbanes.me

🕸️ https://chrisbanes.me 👨‍💻 Senior Staff Software Engineer

1.6K followers66 following178 posts

Hunting down Jetpack Compose recomposition issues manually is a huge time sink I’ve spent the past few weeks using @mmckenna.me’s Dejavu to simplify this: - Write Dejavu tests to establish a baseline - Tell the agent to hunt for issues and A/B fixes - Profit

Chris Banes reposted

✨ ChromaDial is a new #ComposeMultiplatform library that enables you to create beautiful Dials for your #JetpackCompose app Its API is similar to the Slider, but instead works in degrees Just pass in and set the degree state #buildinpublic

Tried out @github Copilot to write a small feature for Haze, all from my phone. It’s the ultimate in lazy programming, but I’m pretty mind blown. 🧵…

View full thread

And that’s where we’re at. Still need to finalise a few things, but I’m sure that this PR will be landing later today without me touching a physical keyboard. 5/

just found the limitation of Copilot. Since it can't run builds/lints/etc as part of the Agent run, you end up doing a lot of bouncing around via CI. If your CI is slow (GitHub Actions are not exactly the fastest) then you get into a bit of loop.

Tried out @github Copilot to write a small feature for Haze, all from my phone. It’s the ultimate in lazy programming, but I’m pretty mind blown. 🧵…

View full thread

Tried out @github Copilot to write a small feature for Haze, all from my phone. It’s the ultimate in lazy programming, but I’m pretty mind blown. 🧵…

I migrated our entire codebase over to it last week, and we’re now fully on the Metro train. 💺 It has pretty much everything y’all will need, right now.

Zac Sweers@zacsweers.dev

Metro wouldn’t be where it is without the road that Anvil paved before it. I’ve really enjoyed working with Joel and Jacob on several Metro features already, with @ralf-wondratschek.com in its early design phase, and really looking forward continuing to work with all of them. Future’s bright 🚇

What is it with Facebook adding pull-up gestures for the most random actions: Instagram DMs: Pull up to toggle disappearing messages. WhatsApp: Pull up to call. The amount of times I’ve triggered these actions: too many. The amount of times that I’ve meant to perform them: absolutely zero.

I've been trying out @jetbrains.com Junie over the past few few days, and have pretty blown away with it. I've managed to do everything from a complex refactoring of Haze (with follow up tasks), to fairly complex string manipulation (pretty printing data class toString).

Seems to be a lot of talk about Haze and Liquid Glass… At its core, Haze is a background content transform library, and the ‘visual effect’ (blurring, etc) is just an implementation detail. Liquid Glass will be a runtime shader like others which Haze already uses.

💠 Haze 1.6.0-beta01 has been released! 🐛: Android 12 is now enabled by default 🤖: Experimental blurring support for all Android versions The video below is recorded on a Pixel 3 running Android 11, but it works back to Android 5. Please give it a try and report back! 🔗: github.com/chrisbanes/h...

Dug out an old Pixel 3 today, to do some testing on earlier Android versions. I forgot how small and light devices used to be. Feels like a feather compared to my iPhone Pro Max 16

Had a little hack getting Haze working on older Android devices. It uses RenderScript, so is never going to be real-time, but the lag isn't too bad. Everything is performed asynchronously, so this isn't jank. I'm undecided whether to keep going with it. Let me know if this would be useful to you.

🚀 Should you use Kotlin Sequences for Performance? I have always thought that using asSequence() was the way to optimize chained operations in Kotlin. But after benchmarking, the results shocked me: Sequences are often slower! 😱 #Kotlin #AndroidDev chrisbanes.me/posts/use-se...

chrisbanes.meShould you use Kotlin Sequences for Performance?Should you use Kotlin Sequences for performance? I put List, Sequence, and Flow to the test with kotlinx-benchmark, and the results were surprising!

Just tried asking ChatGPT and Gemini to convert a `composed` modifier to use `Modifier.Node`, and both failed miserably. Gemini probably got closest of the two, but it hallucinated all sorts of random callbacks which don't exist.

Big +💯 to this However, the same can be said about AndroidX bumping up the compileSdkVersion

Aurimas Liutikas@liutikas.net

AndroidX upgraded to Kotlin 2.1.0 and just learned that we are forcing all non-JVM/Android (iOS, WASM, etc) users of our KMP libraries to upgrade to KGP 2.1.0, that ... is not great. Learn why that is important for JDK and KGP and how to set that up. www.liutikas.net/2025/01/10/C... #gradle #kmp