Zac Sweers

Zac Sweers

@zacsweers.dev

All this happened, more or less Blog: zacsweers.dev 📍NYC

1.5K followers417 following79 posts

Pinned

👋 Hi everyone, I’m enabling GitHub Sponsors for Metro If Metro has improved your developer experience or saved your team's build times, I’d appreciate the support! Full pitch and ROI napkin math here: www.zacsweers.dev/sponsoring-m...

zacsweers.devSponsoring MetroMetro is the proudest work of my career. Ever since starting it on vacation in November 2024, building it has been an incredible journey and the community reception has been nothing short of wonderful...

Zac Sweers reposted

Apologies for the contrast issues on some slides in the video. My slides were black and white, the video processing for some reason gave it a Solarized Light theme

Runtime tracing is a new integration with the upcoming androidx.tracing 2.0. If enabled, you just pass a Tracer instance into your graph and Metro will generate code that traces binding materialization throughout your graph. This is especially useful for profiling app startup or a CUJ.

Rich diagnostics is something I've wanted to work on for a while and takes a lot of inspiration from Rust. Same focus on detail and bouncing you in the right direction, but now with markup and diagrams! This works safely in the IDE as well, where IDE builds will gracefully fall back to plain ascii.

Coming in Metro 1.3.0! Was awesome working with Rahul on this

Rahul Ravikumar@rahulrav.com

I collaborated with @zacsweers.dev (who did most of the heavy lifting) to add automatic tracing for Graph bindings generated by Metro. If you are using DI, then you should be cognizant of it's costs. Metro automatically adds traces for all generated bindings when you enable Runtime tracing.

Zac Sweers reposted

Best thing about Mamdani is that he's one of the only Democrats who understands you can just do things

When James Dolan cancels the watch party outside MSG, we bring the watch party to you. Thanks to the @nba.com, Knicks Game 4 is now playing on dozens of LinkNYC screens across our city. LGK.

Zac Sweers reposted

I've been a broken record on this for three years and I'll be a broken record for as long as that fucking website exists: X is a viciously racist far-right organising platform that ONLY WORKS because a huge number of centrists, lefties and progressivs cannot stop propping it up

yahoo.comElon Musk accused of fuelling unrest after Belfast knife attackThe use of social media in planning violent protests over the Belfast knife attack has drawn condemnation, with Britain's ruling Labour Party accusing Elon Musk of stoking divisions. The tech billiona...

Zac Sweers reposted

⚡️Circuit 0.34.0 is out 🚀 🆕 SubCircuit - A lightweight presenter/UI pair for reusable components that need to cooperatively delegate events to a parent. Plus a new composite-presenter Inbox sample, support for Compose 1.11, and a variety of fixes! github.com/slackhq/circ...

github.comRelease 0.34.0 · slackhq/circuitSubCircuit SubCircuit is a lightweight version of Circuit for rendering nested presenter/UI pairs that delegate events to an outer component rather than handling navigation themselves. Use it for n...

Moreover, what Apple and Google and all these other companies haven't learned that movie studios have is you need to make the non-human companion character functionally a cat. Toothless, Rocky, BB8, R2, Stitch, WALL-E, Groot, list goes on

Zac Sweers@zacsweers.dev

I want a Rocky voice in all these assistants

Zac Sweers reposted

—Guy gets a potato egg and cheese taco —republicans decide to make it a campaign issue —they call him vegan instead of vegetarian even though vegans don’t eat eggs or cheese, because vegan sounds “worse” —guy isn’t even vegetarian, he just likes tacos

Aaron Rupar@atrupar.com

RNC Chair Joe Gruters: "Tala-freako is a creep. He's a vegan. He thinks God is nonbinary. He wants to mutilate children."

Metro 1.1.0 and 1.0.1 are out now! This is largely a performance release. They are identical except 1.1.0 drops Kotlin 2.2.0 - Improved compiler performance - Lots of tracing improvements - SwitchingProvider now generates tableswitch bytecode - Kotlin 2.4.20 support github.com/ZacSweers/metro/re..

github.comRelease 1.0.1 · ZacSweers/metroNew [FIR] Add a diagnostic warning that @Module.subcomponents is ignored by Metro (when Dagger interop is enabled). [FIR] Add a diagnostic error for annotating @AssistedInject types with @Contribu...
View full thread

Speaking of dawg, this release’s copilot: Coral! Coral’s been through hell and back, even by shelter dog standards. But despite that she’s incredibly sweet and gentle. Very much enjoyed watching her last week for another volunteer.

Metro 1.1.0 and 1.0.1 are out now! This is largely a performance release. They are identical except 1.1.0 drops Kotlin 2.2.0 - Improved compiler performance - Lots of tracing improvements - SwitchingProvider now generates tableswitch bytecode - Kotlin 2.4.20 support github.com/ZacSweers/metro/re..

github.comRelease 1.0.1 · ZacSweers/metroNew [FIR] Add a diagnostic warning that @Module.subcomponents is ignored by Metro (when Dagger interop is enabled). [FIR] Add a diagnostic error for annotating @AssistedInject types with @Contribu...

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 🚇

Big Friday over here - Foster pup Helga got adopted! - Raced another mile and lowered my (adult life) best to 4:46 in a big breakthrough - Finished a huge rewrite of Metro's internal binding graph, runs in O(V+E) complexity now + fixed a few bugs along the way