Sign in

Matt McKenna

@mmckenna.me
1.4K followers 392 following 415 posts

🤖 #AndroidDev and GDE 💼 Mobile @ ramp.com 🌐 International Speaker 🐾 Dog lover 📝 blog.mmckenna.me

PostsRepliesMedia
Reposted by Matt McKenna
Bryan Cantrill @bcantrill.bsky.social · 13/09/2026
The contagion of fear bcantrill.dtrace.org/2026/09/13/t...
bcantrill.dtrace.org
The contagion of fear | The Observation Deck
1624183
Matt McKenna @mmckenna.me · 10/09/2026
Thanks to everyone who tried it, reported issues, contributed fixes, or shared! 💚 github.com/mttmcknn/de...
github.com
Release DejaVu 0.5.0 — Compose 1.12 · mttmcknn/dejavu
DejaVu 0.5.0 targets stable Compose 1.12 and adds regressions for its new runtime and testing behavior. Android Compose 1.11 remains supported, and DejaVu keeps its own version numbers. Compatibili...
011
Matt McKenna @mmckenna.me · 10/09/2026
• Expanded test coverage: keyed SideEffect, changing remember keys, nested movable content, and newer Compose test APIs. • Platform fixes and validation: Android, JVM desktop, iOS, and Wasm!
110
Matt McKenna @mmckenna.me · 10/09/2026
• Dejavu 0.4.0: support for Compose Multiplatform 1.11. • Dejavu 0.5.0: support for Compose Multiplatform 1.12, while retaining Android Compose 1.11 compatibility.
110
Matt McKenna @mmckenna.me · 10/09/2026
Life’s been busy lately, and I finally found some time today to get caught up on dejavu! Dejavu turns Compose recomposition counts into test assertions, so you can catch regressions and protect the improvements you’ve already made. Here’s what’s new:
120
Matt McKenna @mmckenna.me · 03/08/2026
Thank you!! 🙌
010
Matt McKenna @mmckenna.me · 03/08/2026
After 4.5 rewarding years at Square, my time there came to an unexpected end. It’s a transition that feels all too familiar right now, but it cleared the path for an amazing new opportunity. I'm excited to start my next chapter at Ramp!
1140
Matt McKenna @mmckenna.me · 17/07/2026
I hope droidcon was great! Wish I could have made it this year.
120
Reposted by Matt McKenna
Sebastian Sellmair @sellmair.dev · 17/07/2026
Something big might happen to the Kotlin Multiplatform Ecosystem 👀 We were never too happy about how Kotlin publishes and resolves KMP libraries. It takes up significantly more space than it has to, produces a ton of artifacts and Maven modules, and is just... complex!
14914
Reposted by Matt McKenna
TJ @tunji.dev · 09/07/2026
Experimenting with something new in the latest Heron release. Heron now let's you download a local inference model to translate text and it works completely offline on your device. Nothing gets sent to any server.
091
Matt McKenna @mmckenna.me · 03/07/2026
Side note: Jules gets very annoying very fast by reporting duplicate PRs all the time...
000
Matt McKenna @mmckenna.me · 03/07/2026
Finally working on cleaning up PRs for dejavu, including working on Compose 1.11 support. github.com/himattm/dejavu
github.com
GitHub - himattm/dejavu: A lightweight framework for tracking and asserting against Jetpack Compose recompositions.
A lightweight framework for tracking and asserting against Jetpack Compose recompositions. - himattm/dejavu
120
Matt McKenna @mmckenna.me · 22/06/2026
Congrats 🥳🥳
120
Reposted by Matt McKenna
Zac Sweers @zacsweers.dev · 16/06/2026
Super sympathetic to Sonatype's situation, hosting isn't free. But announcing this with paltry limits and no public pricing options (a sales contact ain't it) is bad for everyone and going to be a major disruption to the JVM and Kotlin ecosystems. central.sonatype.org/publish/mave...
central.sonatype.org
Maven Central Publishing Limits
6297
Reposted by Matt McKenna
Bridget Phillips @jingibus.bsky.social · 03/06/2026
Maybe the most harmful thing about LLMs for a learning community is that you won't learn about anything unrelated to what you asked for.
073
Matt McKenna @mmckenna.me · 29/05/2026
Congrats!
020
Reposted by Matt McKenna
Cassidy @cassidoo.co · 27/05/2026
look how they massacred my boy
A google search for "how many ps are in google", and the AI Overview says 2.
53925150
Reposted by Matt McKenna
Mark Murphy @commonsware.com · 26/05/2026
Hi! I shipped jetc.dev Newsletter Issue #315! Google I|O 2026! Compose Multiplatform 1.11.0! Android is Compose-first! And... an LLM-powered layout?!? jetc.dev/issues/315 #JetpackCompose #AndroidDev
1114
Reposted by Matt McKenna
Chris Banes @chrisbanes.me · 26/05/2026
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
3181
Matt McKenna @mmckenna.me · 26/05/2026
Thanks for trying it out! Please let me know if you have any feedback 💚
000
Reposted by Matt McKenna
Márton Braun @zsmb.co · 26/05/2026
If you somehow missed the KotlinConf keynote last week, here are the top 10 KMP announcements with links to learn more about each 🧵👇
1105
Reposted by Matt McKenna
Saket Narayan @saket.me · 25/05/2026
Introducing Touch Robot, something that has materially changed how I write screenshot tests. We've been using it at Block for ~2 years to catch animation and gesture bugs that static screenshots miss. saket.me/touch-robot/
saket.me
Introducing Touch Robot, for writing interactive screenshot tests in Compose UI
The best parts of a UI are usually in motion. The bugs are too.
1205
Matt McKenna @mmckenna.me · 21/05/2026
I bet you did great!
010
Matt McKenna @mmckenna.me · 20/05/2026
And we felt the pain of the surrounding code while writing. AI doesn't feel bad code like we do. Eventually that pain would grow to the point where we have to create new solutions or pick better abstractions.
030
Reposted by Matt McKenna
Gergely Orosz @gergely.pragmaticengineer.com · 19/05/2026
Situation 1: dev A thinks approach X is correct, dev B thinks Y is the right way. They argue and try to convince each other. Situation 2: dev A thinks approach X is correct, tells the LLM to implement it. There is SO MUCH learning in Situation 1, lost when using LLMs....
1616729
Reposted by Matt McKenna
Adam McNeilly @adammc.bsky.social · 17/05/2026
Screaming into the void some thoughts on AI coding. androidessence.com/leave-me-beh...
androidessence.com
Leave Me Behind | Android Essence
Simplified Android Development
99536
Matt McKenna @mmckenna.me · 08/05/2026
Welcome back! 🙌
120
Matt McKenna @mmckenna.me · 03/05/2026
Yea that would be very cool!
000
Matt McKenna @mmckenna.me · 03/05/2026
Yes @schimke.ee !! Thank you for making this 💚 github.com/yschimke/com...
github.com
GitHub - yschimke/compose-ai-tools: Helping the Agents Compose the Things
Helping the Agents Compose the Things. Contribute to yschimke/compose-ai-tools development by creating an account on GitHub.
251
Matt McKenna @mmckenna.me · 01/05/2026
10/10 title
030
Matt McKenna @mmckenna.me · 30/04/2026
Dejavu is KMP, so the skills work across Android, JVM Desktop, iOS, and WasmJs. They cross-reference each other so the agent moves between them on its own. Try it on a composable that's been bugging you. Repo: github.com/himattm/dejavu Docs: dejavu.mmckenna.me
github.com
GitHub - himattm/dejavu: A lightweight framework for tracking and asserting against Jetpack Compose recompositions.
A lightweight framework for tracking and asserting against Jetpack Compose recompositions. - himattm/dejavu
040
Matt McKenna @mmckenna.me · 30/04/2026
Two lines in any Claude Code session: /plugin marketplace add himattm/dejavu /plugin install dejavu@dejavu
120
Matt McKenna @mmckenna.me · 30/04/2026
The floor isn't always zero. Some composables legitimately recompose N times when their inputs change, and that count is the right answer. The skill writes the assertion as exactly = N and locks it in. If the count already matches the floor, the cookbook step is skipped.
100
Matt McKenna @mmckenna.me · 30/04/2026
The standout is dejavu-perf-loop. You pick a composable, write a test asserting atMost=10, and run it. You read the failure, choose a cookbook fix, apply it, and rerun. Tighten the bound and keep going until the count matches the floor.
100
Matt McKenna @mmckenna.me · 30/04/2026
Today I shipped four skills, one for each part of the loop: • dejavu-onboarding: adds Dejavu to a project • dejavu-test-writer: authors recomposition tests • dejavu-error-triage: diagnoses failing assertions • dejavu-perf-loop: drives recompositions to their floor
100
Matt McKenna @mmckenna.me · 30/04/2026
I built Dejavu because agents don't feel extra recompositions. They write Compose code that compiles and passes its tests while the UI quietly does ten times the work. Dejavu turns that hidden work into a failing test, giving the agent a count to optimize against.
150
Reposted by Matt McKenna
Chris Banes @chrisbanes.me · 29/04/2026
💠 Haze 2.0-alpha01 is out! This is a big release, splitting Haze up into layers, with the goal of enabling pluggable visual effects. Let me know what you think! chrisbanes.me/posts/haze-2...
chrisbanes.me
Haze 2.0: A Pluggable Visual Effects Engine
Haze 2.0-alpha01 turns blur into a pluggable effect, splitting it into a separate module and opening the door to custom visual effects built on top of a shared rendering infrastructure.
2297
Matt McKenna @mmckenna.me · 30/04/2026
Love this direction! Is the main goal to enable others to make and distribute their own VisualEffect dependencies or to upstream them through contributions?
110
Matt McKenna @mmckenna.me · 29/04/2026
Just a few commands and you're set. The marketplace manifest auto-refreshes at Claude Code startup so you'll get future skills and updates. I'd love to hear how it goes if you try it. github.com/himattm/skills
github.com
GitHub - himattm/skills: My collection of Skills for AI agents.
My collection of Skills for AI agents. Contribute to himattm/skills development by creating an account on GitHub.
010
Matt McKenna @mmckenna.me · 29/04/2026
Finally got around to bundling the skills I'm using every day into a repo and Claude Code marketplace so anyone can install them. I'm still rebuilding from what I was using daily at work, but we'll get there.
/plugin marketplace add https://github.com/himattm/skills
/plugin install android@himattm
/plugin install review@himattm
/plugin install utilities@himattm
260
Matt McKenna @mmckenna.me · 29/04/2026
It's only day two and I've had so much fun finding thinks for this app so far. play.google.com/store/apps/...
play.google.com
Color Snap - Apps on Google Play
Daily color-matching challenge. Snap photos, build streaks, train your eye.
010
Matt McKenna @mmckenna.me · 29/04/2026
🎨 Color Snap 2026-04-28 #283D3B Pine 🟢🟢🟢 3/3
100
Reposted by Matt McKenna
Zac Sweers @zacsweers.dev · 27/04/2026
Metro reaches 1.0! It's the proudest work of my career and I strongly feel this is how dependency injection in Kotlin should be. Thank you to everyone that's contributed and helped this project get to where it's at. Metro wouldn't be where it is without you. www.zacsweers.dev/metro-is-sta...
zacsweers.dev
🚇 Metro is Stable
Metro 1.0.0 is out now and stable. This means that its runtime APIs (runtime, MetroX artifacts, Gradle plugin, etc.) are now API-stable unless annotated with an experimental annotation. This is an ex...
310630
Matt McKenna @mmckenna.me · 27/04/2026
Thank you for featuring Halogen!! 🥳
011
Reposted by Matt McKenna
Adam McNeilly @adammc.bsky.social · 25/04/2026
Wrote up something small about how I started using interface inheritance to handle inserting into multiple tables at a time in Room, when you have a common type used by multiple Daos and don't want to duplicate code. #AndroidDev androidessence.com/multi-table-...
androidessence.com
Managing Multi Table Inserts With Room | Android Essence
Simplified Android Development
272
Matt McKenna @mmckenna.me · 23/04/2026
I also recommend trying Amp as a cli harness. ampcode.com I don't know anything about mistral though and will have to look into it!
ampcode.com
Amp
Amp is a frontier coding agent that lets you wield the full power of leading models.
010
Matt McKenna @mmckenna.me · 23/04/2026
I think it matters a lot! Not only for your own use, as others have said. But LLMs learn sloooowly. Humans still have to be in the loop to guide best practices, especially for under explored topics! We only know those by learning them ourselves, so please write about stuff! 💚
010
Matt McKenna @mmckenna.me · 22/04/2026
Hit Claude limits for the first time ever with Opus 4.7 It's somehow equivalent to my last 30 days of Opus 4.6 use. This makes the model not worth using imo.
Claude usage with opus 4.7 equalling 30 days of Opus 4.6 use
030
Matt McKenna @mmckenna.me · 22/04/2026
Here's the docs on that halogen.mmckenna.me/latest/custo...
110