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/
Ralf
@ralf-wondratschek.com
https://ralf-wondratschek.com/ | Member of Technical Staff at OpenAI, formerly Block / Square, Amazon and Evernote | GoogleDevExpert for Android
1K followers126 following110 posts
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/
I measured how much faster an agent can navigate an app and read its state by skipping the UI. Spoiler alert: the difference is significant. Another reason to decouple your business logic and navigation entirely from the UI layer. ralf-wondratschek.com/blog/headles...
I'm still maintaining App Platform and just pushed a list-detail sample for different screen sizes and how to handle this with the unidirectional dataflow. The sample runs as a web app too: vrallev.github.io/app-platform...
Is anyone using App Platform? github.com/amzn/app-pla... I wanted to give a heads up that ownership of the repo was transferred to me and I'm considering to change the coordinates and packages to detach the project from Amazon. How much pain would this cause for consumers?
The namespace change was merged and became `software.ralf.app.platform`: github.com/vRallev/app-...
Ralf reposted
I've used Metro, and it's better than anything else, imo. It not only speeds up your builds, but makes DI easier, and also provides simpler upgrade paths if you're transitioning from other common DI frameworks. Huge thanks to @zacsweers.dev
I picked up some work on App Platform again, which I created during my time at Amazon. Metro now works perfectly well in KMP projects and therefore it's the recommended default! The latest version also comes with a compiler plugin to avoid KSP. github.com/amzn/app-pla...
Ralf reposted
We're wrapping up our migration to Metro internally for Square Android. I summarized some of our challenges and steps we took in a blog post. If you use Dagger 2 for a Kotlin project, then you should migrate to Metro sooner rather than later. engineering.block.xyz/blog/metro-m...
This is one of the best podcast episodes I have listened to in a while. Highly recommend podcastaddict.com/the-peterman...
Ralf reposted
KotlinPoet 2.3.0 supports typealias declarations inside types, has new convenience API for adding annotations and ships with a healthy dose of bug fixes. Time for a version bump! 🤜🤛 github.com/square/kotli...
One underrated improvement Metro brings is its easy setup. No more configuring KAPT, runtime modules, keeping versions in sync, etc. You apply the Gradle plugin, setup a tiny graph and the rest is driven through constructor injection, @ContributesBinding and its other features. This was all I needed
Ralf reposted
Ralf reposted
I recently migrated our codebase away from Ktlint to Ktfmt and Detekt. I summarized the reasons and migration steps in a blog post: engineering.block.xyz/blog/adoptin...
Ralf reposted
Ralf reposted
Cash Android has recently switched to Metro, a new, fast dependency injection framework built for K2. That was a fun project and we're really happy with the results! Sharing details on how we approached the migration to help teams adopt Metro: code.cash.app/cash-android...
Ralf reposted
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
I'm quite proud of what I accomplished with my team at Amazon and will miss them. I'll keep working on App Platform as much as I can thanks to open source! amzn.github.io/app-platform/
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.
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/
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...
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 🚇
Ralf reposted
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...
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... )
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...
I uploaded the slides of my presentation. Thank you all for coming 🙏 ralf-wondratschek.com/presentation...
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...
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/
Ralf reposted
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...
Ralf reposted
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.
Here’s another glimpse at the amazing Kotlin Multiplatform sessions and speakers you’ll see on stage. 🎤✨ 🔗 kotl.in/conf-schedule 🔗
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 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/
For instructions on how to use the framework, which features it provides, and how you can adopt it, please take a look at the documentation: amzn.github.io/app-platform/