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
1624083
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
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
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
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
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
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
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
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 · 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 · 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 · 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
🎨 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 · 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 · 20/04/2026
Thank you for featuring Halogen! 🙌
021
Reposted by Matt McKenna
Adam McNeilly @adammc.bsky.social · 16/04/2026
Live now! Come hang out for some chill Wednesday night coding twitch.tv/adammc
twitch.tv
Twitch
Twitch is the world
011
Matt McKenna @mmckenna.me · 15/04/2026
Just released version 0.3.1 of Dejavu! This release has some version bumps and a bug fix by @jamescullimore.bsky.social, our first contributor!! github.com/himattm/deja...
github.com
Release v0.3.1 · himattm/dejavu
Fixed Android tag-mapping failure when Dejavu.enable() is called after the test activity is already resumed (#52) seedActiveActivity() now explicitly seeds the current activity from DejavuCompose...
020
Reposted by Matt McKenna
Mark Murphy @commonsware.com · 15/04/2026
I finally did it. I finally decided to declare that I am #OpenToWork. See commonsware.com/blog/2026/04... for more!
commonsware.com
#OpenToWork
If you have a problem, if no one else can help, and if you can find him... maybe you can hire... me! 😁
0135
Matt McKenna @mmckenna.me · 15/04/2026
Halogen 0.2.0 is out now with the halogen-image module! github.com/himattm/halo...
github.com
Release Halogen v0.2.0 · himattm/halogen
What's Changed Add halogen-image module for image-to-theme extraction by @himattm in #19 Full Changelog: v0.1.0...v0.2.0
010
Reposted by Matt McKenna
Zac Sweers @zacsweers.dev · 15/04/2026
I know there's a lot of people that worked on this behind the scenes but on top of Ralf and Tom, I also wanna give a huge shout out to Joel Wilcox and Jacob Applin for a ton of contributions, pairing sessions over tuple, and starting work with me on Metro as far back as January 2025. Hire them!
1356
Matt McKenna @mmckenna.me · 14/04/2026
Halogen will support images soon!
130
Reposted by Matt McKenna
Mark Murphy @commonsware.com · 07/04/2026
I just released jetc.dev Newsletter Issue #309! Design system rules! Cross-platform haptics! Cross-platform biometrics! Editors! More editors! And... yet more editors?!? jetc.dev/issues/309 #JetpackCompose #AndroidDev
183
Matt McKenna @mmckenna.me · 02/04/2026
Unfortunately I missed "April Cools" day, but I've been exploring niche uses of LLMs. I think the "LLM chat box" clearly has it's place, but is so underwhelming as a product addition. So here's a teaser! What if your app's theme could react to app state with no no config?
041
Reposted by Matt McKenna
Saket Narayan @saket.me · 02/04/2026
I built a tiny IntelliJ IDEA plugin for something that had been bothering me for years github.com/saket/intell...
5289
Matt McKenna @mmckenna.me · 23/03/2026
This year at Square we started shipping aggressively. Powered by a completed migration, new feature roadmaps, and AI adoption, we shifted into a build, demo, iterate, ship cycle. My team was showing our work to other engineers all the way up to the C-suite.
120
Matt McKenna @mmckenna.me · 23/03/2026
Dejavu is now Kotlin Multiplatform! (v0.3.0) Track and test recomposition regressions on: - Android - Desktop - iOS - WasmJs dejavu.mmckenna.me
dejavu.mmckenna.me
Dejavu
Lock in Compose performance. Catch recomposition regressions before your users.
080
Reposted by Matt McKenna
Tor Norbye @tornorbye.bsky.social · 18/03/2026
The IntelliJ documentary is out now: www.youtube.com/watch?v=Kour... And it also covers the origin of Android Studio!
youtube.com
IntelliJ IDEA: The Documentary | An origin story
YouTube video by CultRepo
0133
Matt McKenna @mmckenna.me · 17/03/2026
Just updated some wording for Dejavu to focus more on UI efficiency rather than performance thanks to some feedback.
120
Reposted by Matt McKenna
Mark Murphy @commonsware.com · 17/03/2026
OK, I shipped jetc.dev Newsletter Issue #306! Compose patch and beta releases! Compose Multiplatform alpha release! @mmckenna.me on recomposition testing! @aditlal.dev on recomposition budgets! And... is it time to take action?!? jetc.dev/issues/306 #JetpackCompose #AndroidDev
073
Matt McKenna @mmckenna.me · 16/03/2026
Thanks @androidweekly.bsky.social for featuring Dejavu! I just shipped v0.2.0 with CompositionObserver integration. When a recomposition assertion fails, you see exactly which state object caused it, and the value progression. 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
094
Reposted by Matt McKenna
Gergely Orosz @gergely.pragmaticengineer.com · 11/03/2026
When it comes to AI agents / AI tooling + coding, I hear an awful lot of talk about: Efficiency Iteration speed / PR output rate / lines of codes produced I hear zero mentions about: Quality Customer obsession This will bite back, and it probably already is...
1715522
Matt McKenna @mmckenna.me · 11/03/2026
I've been using @zed.dev more and more as I work with AI tools. It's speed is amazing, but I missed the IntelliJ Islands theme. So I made it! Find it in Zed extensions. 😁 github.com/zed-industri...
Islands Dark Theme in ZedIslands Light Theme in Zed
050
Reposted by Matt McKenna
Mark Murphy @commonsware.com · 10/03/2026
I just published jetc.dev Newsletter Issue #305! Compose Multiplatform patch! FlexBox! CameraX! Permissions! ContentScale! @mmckenna.me on testing recomposition counts! NFC! jetc.dev/issues/305 #JetpackCompose #AndroidDev
092
Matt McKenna @mmckenna.me · 09/03/2026
Today I’m open-sourcing Dejavu! Testing UI performance in Jetpack Compose is frustrating. We profile and watch tools, yet regressions still creep in. I built Dejavu to make recomposition behavior something you can actually test.
A screenshot of code that reads:

// Create a Recomposition Tracking Rule
@get:Rule
val composeTestRule = createRecompositionTrackingRule()

@Test
fun incrementCounter_onlyValueRecomposes() {
  // Perform an action
  composeTestRule.onNodeWithTag("inc_button")
    .performClick()

  // Assert that Composables change like you expect
  composeTestRule.onNodeWithTag("counter_value")
    .assertRecompositions(exactly = 1)

  // Or assert that they remain stable
  composeTestRule.onNodeWithTag("counter_title")
    .assertStable() // asserts recompositions = 0
}
74011
Reposted by Matt McKenna
Adam McNeilly @adammc.bsky.social · 05/03/2026
Live now! Exploring a new testing lib from @mmckenna.me! Come checkout Dejavu with me here: twitch.tv/adammc
twitch.tv
AdamMc - Twitch
Android GDE. I stream live coding once a week, and sometimes a little Rocket League to go with it!All opinions are my own and not that of my current employer.
122
Matt McKenna @mmckenna.me · 03/03/2026
Ask anyone who worked at Block/Square what they loved most and I guarantee you the first thing they'll say is "its the people". blog.mmckenna.me/cook-togethe...
blog.mmckenna.me
0153
Matt McKenna @mmckenna.me · 27/02/2026
I have had too much coffee for the lack of work I need to do today. 😬
070