Nate Ebel
@n8ebel.bsky.social
710 followers 230 following 85 posts
🖥️ Software Developer & Tech Lead 👨‍💻 Ex Kotlin Google Developer Expert
Posts Media Videos Starter Packs
n8ebel.bsky.social
Also loading up on delicious baked goods today 😍
n8ebel.bsky.social
Soaking up some Cali sun this weekend ☀️😎
n8ebel.bsky.social
Let's see what this #GoogleIO Dev keynote has for us...
n8ebel.bsky.social
👀 "Eliminating most limitations of interop in Kotlin/JS"
jetbrains.com
🌐 Kotlin for web: What's new and what's next 🚀

Significant progress has been made in enhancing Kotlin Multiplatform support for web development. 🛠️ A lot has been going on behind the scenes – and now it’s time to share the latest updates 👉 jb.gg/ho9gtk
Present and Future of Kotlin for Web | The Kotlin Blog
We've been focused on enhancing Kotlin Multiplatform for web, and a lot has been going on behind the scenes. Now, we're ready to share it!
jb.gg
n8ebel.bsky.social
Anyone using Telepresence to communicate with services in your k8s cluster from locally running services within a Docker Compose environment?

Trying to get it working and can it understand why I can hit one service in the cluster, sometimes, but not the rest 😵‍💫
n8ebel.bsky.social
Really wish I was heading to KotlinConf.

We've spent the past ~18 months rebuilding our core platform on Kotlin & Kotlin Multiplatform and now some Compose Multiplatform as well and I've got the itch to share about the cool work we've done! Crossing my fingers for next year 🤞
n8ebel.bsky.social
That's what has prompted my little emergency deep dive into the optimization. Our new CMP project is worked amazing so far for porting over some non-trivial functionality but for a still relatively small project we were already feeling the pain of linking.
n8ebel.bsky.social
Using Parallels is a really interesting idea when targeting those other desktop platforms 😀

Are there hoops to jump through to get it deployed onto those virtualized machines?
n8ebel.bsky.social
Are you using internal and @/HiddenFromObjC together generally? Or do you use a set of team guidelines/conventions to dictate when to use one or both?
n8ebel.bsky.social
Very interesting. I hadn't come across those before or looked into the linker much. Sounds like I should. Thanks for the tip!
n8ebel.bsky.social
"Avoid release at all cost" definitely seems like the right strategy.
n8ebel.bsky.social
This seems to be the place to start for tackling this problem. Confirms a lot of my thoughts on where to start optimizing.

kotlinlang.org/docs/native-...
n8ebel.bsky.social
This was a timely find in my feed. We've been feeling some of these build time pain points in our new CMP project.

The article confirms a lot of my suspicions about where to start optimizing but also some stuff I hadn't seen before.

Thanks for sharing!
n8ebel.bsky.social
I'm not sure if maybe we should avoid building a Release build type for the simulator target by default since most the time we'd just want the Debug build type 🤔
n8ebel.bsky.social
This has been a problem for us in our other KMP project, and nothing short of throwing more powerful CPUs at it seemed to help much. We eventually just introduced some build flags so we could run most builds against just the JVM target for local dev but our CI build times are still pretty awful.
n8ebel.bsky.social
Just avoid running any task that runs more than one linking task at a time? Maybe paired with doing most local dev again Android or Desktop first then test on iOS?
n8ebel.bsky.social
What are folks doing to minimize the impact of slow native linking build tasks for the iOS targets in Compose Multiplatform projects?
Reposted by Nate Ebel
liutikas.net
I'm proud of Gradle Best Practices finally launching. It was a result of many hours of discussions, negotiations, and wordsmithing to bring you the first batch of best practices. It was a deep collaboration between Google, Jetbrains, and Gradle. Enjoy it!

blog.gradle.org/gradle-best-...
#gradle
Gradle Best Practices - A Path to Build Happiness
Gradle Build Tool, also known as Gradle, is a highly flexible and extensible build system. It supports multiple ways to structure and configure builds, making it incredibly powerful—but also somewhat ...
blog.gradle.org
n8ebel.bsky.social
Every time I think I have PagerDuty escalation policy settings figured out... someone on the team gets alerted in the middle of night for a low-priority issue and I'm reminded that I apparently understand nothing 😑
n8ebel.bsky.social
That sure would be nice!
Reposted by Nate Ebel
jorgecastillo.dev
The Jetpack Compose and internals course is the result of years of deep exploration, experience working on Compose initiatives at big tech, and writing the Jetpack Compose Internals book 🧵
n8ebel.bsky.social
Managed to get access to WindowSizeClass across both Android and iOS.

Will hopefully get more time tomorrow to really start experimenting with nav rail and some of the more tailored Scaffold implementations.
n8ebel.bsky.social
Started digging into the adaptive layout apis today. A little bit confusing at first trying to find the latest available apis and how to get them imported properly. Seems like one of those areas where things are advancing quickly; so it's a good problem to have I suppose.
n8ebel.bsky.social
Was quite simple to get Koin integrated into my small sandbox project. Reminded me a lot of Hilt with how easily it integrated with the Compose NavController