Ralf
banner
ralf-wondratschek.com
Ralf
@ralf-wondratschek.com
https://ralf-wondratschek.com/ | Senior staff engineer at Block / Square, formerly Principal Engineers at Amazon and Evernote | GoogleDevExpert for Android | https://github.com/amzn/app-platform
Pinned
App Platform Launched

App Platform is a lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects. I'm happy to announce that we open-sourced the project today!

amzn.github.io/app-platform/
App Platform
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects.
amzn.github.io
Reposted by Ralf
This is fantastic and @zacsweers.dev deserves all the praise but it also is gonna give you a false idea of what Z is like as a maintainer and author, what the project is like, and how you might achieve something like this yourself
Hot take: Dependency Injection on Android just got a huge upgrade!!

Square just moved Anvil to maintenance mode to adopt Metro - a DI framework built by ONE PERSON that's 47-56% faster than Dagger+Anvil.

This is what "individual developers changing ecosystems" looks like 🧵

#AndroidDev
November 8, 2025 at 7:01 AM
After three wonderful years at Amazon I'm happy to share that I started this week at ... Square / Block again on my old team 🪃 I'm excited to think about developer productivity more deeply again.
September 11, 2025 at 11:07 PM
Our KMP framework App Platform now supports Metro out of the box: github.com/amzn/app-pla...

@zacsweers.dev is pushing the boundaries with Metro and there are still some Kotlin compiler bugs that need to be resolved, but on the JVM / Android it works.
Release 0.0.6 · amzn/app-platform
Added Added support for Metro as dependency injection framework. User can choose between kotlin-inject-anvil and Metro. For more details see the documentation for how to setup and use both depende...
github.com
September 5, 2025 at 6:34 PM
I've been using ktfmt over KtLint for a few months for some projects. It's a blessing and so much easier to deal with. I forgot how much I missed 2 space indent in Kotlin.

facebook.github.io/ktfmt/
ktfmt - the Kotlin code formatter
facebook.github.io
August 22, 2025 at 6:36 PM
We published a new version of App Platform with back button support. We also added recipes for saving presenter state, app bar integration and backstack navigation.

Working with Compose in the business logic (Molecule) and UI (Compose Multiplatform) is so much fun.

amzn.github.io/app-platform...
Changelog - App Platform
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects.
amzn.github.io
July 25, 2025 at 6:03 PM
Anvil was quite successful inside and outside of Square, but now it's time for the next big improvement. Metro is 95% of what I pitched as Dagger 3 within Square. I'm excited.
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 🚇
Anvil is approaching the icebox, long live Metro.

github.com/square/anvil...
July 18, 2025 at 2:02 PM
Reposted by Ralf
Version 0.34.0 of the gradle-maven-publish-plugin finally comes with configuration cache support. Dropping support for Sonatype OSSRH unblocked us from waiting for Gradle to resolve the underlying issue on their side.

github.com/vanniktech/g...
Release 0.34.0 · vanniktech/gradle-maven-publish-plugin
Added configuration cache support for publishing. Removed support for publishing through Sonatype OSSRH since it has been shut down. See the 0.33.0 release notes for upgrade instructions if you hav...
github.com
July 14, 2025 at 9:53 AM
I had problems upgrading to the latest version of IntelliJ IDEA and Android Studio with the new Kotlin Multiplatform plugin. But now that it's working and Compose Hot Reload is running the integration is pretty nice.

(This was my issue: youtrack.jetbrains.com/issue/KMT-11... )
youtrack.jetbrains.com
July 15, 2025 at 4:55 AM
This is great. Unlimited PTO is a trap. Amazon works very similar to Bolt and learnt to like this a lot.

www.kron4.com/news/technol...
www.kron4.com
July 2, 2025 at 1:56 AM
The new version of App Platform is out with support for Wasm! The wiki has integrated the Wasm sample application from the repository to see the code in action.

amzn.github.io/app-platform/
App Platform
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects.
amzn.github.io
May 28, 2025 at 10:31 PM
I uploaded the slides of my presentation. Thank you all for coming 🙏

ralf-wondratschek.com/presentation...
May 24, 2025 at 4:22 AM
Reposted by Ralf
The problem was very well summarised and the solution well explained. Great talk!
May 23, 2025 at 3:00 PM
Kotlin Conf is great and a lot of fun. I'm closing today with my session "Scale your Kotlin Multiplatform projects using dependency injection". I hope some folks are still around and don't travel home yet 😊

kotlinconf.com/schedule/?da...
Schedule | KotlinConf 2025, May 21–23, Copenhagen
KotlinConf is the official Kotlin conference by JetBrains. It is a place for the community to gather and discuss all things Kotlin.
kotlinconf.com
May 23, 2025 at 7:14 AM
Reposted by Ralf
Indeed, we improved every parts of ADB Wifi pipeline. Besides support in Studio, you need ADB 36.0.1 (to be released soon) and Android 16.
May 22, 2025 at 1:11 AM
I'm waiting for the AI agents from German companies named Günther, Jürgen or Klaus.
May 20, 2025 at 7:16 PM
Where does one start with improving Android app performance? Should I start with writing benchmarks to establish a baseline? Should I enable StrictMode and LeakCanary first? How can I implement metrics in production?

Are there any good guides for beginners you'd recommend?
May 7, 2025 at 2:12 AM
That's me! I'm really excited about this topic and look forward to giving this talk at KotlinConf. I'll summarize how we got here and how painless dependency injection can be.
April 25, 2025 at 4:50 PM
App Platform Launched

App Platform is a lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects. I'm happy to announce that we open-sourced the project today!

amzn.github.io/app-platform/
App Platform
A lightweight application framework for state and memory management suitable for Kotlin Multiplatform projects.
amzn.github.io
April 17, 2025 at 9:59 PM
This is fantastic. This is so close to what I wanted Dagger 3 to be when I proposed this 5 years ago at Square. Well done @zacsweers.dev 🙏
A palette cleanser for your timeline today: Introducing Metro!

Metro is a compiler-plugin-based dependency injection framework that draws heavy inspiration from Dagger, Anvil, & Kotlin-Inject.

www.zacsweers.dev/introducing-...
Introducing Metro
I'm excited to share something new I've been working on the past few months!
www.zacsweers.dev
April 3, 2025 at 4:39 PM
Reposted by Ralf
The hardest problem in software engineering is finishing migrations and it’s not even close
March 21, 2025 at 3:11 AM
I was at @evernote.bsky.social when they started migrating to React Native in 2018. Against all advice from tech leads the SVP of engineering (coming from Amazon) pushed through. The quality of the Android app went downhill over the years not only performance wise.
February 7, 2025 at 6:36 PM
Oh no, the bots are here.
January 11, 2025 at 5:33 PM
Reposted by Ralf
Just migrated the BikeShare #KMP/#CMP sample (github.com/joreilly/Bik...) to use kotlin-inject-anvil (had been using just kotlin-inject)....think maybe can be simplified further but still got rid of quite a bit of boilerplate code (particularly related to setup of Circuit factories)
GitHub - joreilly/BikeShare: SwiftUI, Jetpack Compose, and Compose for Desktop based Kotlin Multiplatform project (using CityBikes API http://api.citybik.es/v2/). Uses Realm for local persistence
SwiftUI, Jetpack Compose, and Compose for Desktop based Kotlin Multiplatform project (using CityBikes API http://api.citybik.es/v2/). Uses Realm for local persistence - joreilly/BikeShare
github.com
December 22, 2024 at 8:03 PM