Jaewoong Eum (skydoves)

@skydoves.bsky.social

Senior Developer Advocate & Engineer at @revenuecat.com 🥑 Google Developer Expert for Android and Firebase. An open-source software engineer. GitHub: github.com/skydoves Dove Letter: doveletter.dev/ Android Book: www.android.skydoves.me

Published a new article, 'How Keeps 30+ Gradle Modules DRY with Convention Plugins'. A guide to using Gradle Convention Plugins to modularize and reuse common build logic, eliminating boilerplate and ensuring consistency across multi-module projects. doveletter.dev/articles/gra...

How Keeps 30+ Gradle Modules DRY with Convention Plugins

Every Android developer who has grown a project past a handful of modules knows the ritual. You create a new module, open its , and start copying: the block...

doveletter.dev

Hot Reload on iOS is actually real. This is just a PoC of iOS hot reloading with Compose HotSwan. Working on completely different compiler plugins from scratch for Kotlin Multiplatform. No rebuilds, no reinstall, no need to navigate back and recover your state, and this could cut your build steps.

Just published a new article, 'How an AI Agent Builds Android UI It Has Never Seen: A First Look at a2ui'. This article breaks down agent-driven UI concepts via a new experimental Jetpack a2ui library and explores its core architecture. doveletter.dev/articles/a2ui-agent-driven-ui

How an AI Agent Builds Android UI It Has Never Seen: A First Look at a2ui

AI agents can now reason about a task, call tools, and hold a conversation. What they still cannot do well is show you a native screen. An agent that books a...

doveletter.dev

I just published a new article, "Inside Compose Side Effects: RememberObserver and the Composition Lifecycle". This article explores the internal mechanics, lifecycle integration, and API differences of Jetpack Compose effect handlers. doveletter.dev/articles/com...

Inside Compose Side Effects: RememberObserver and the Composition Lifecycle

Open almost any Compose screen and the effect handlers are already there. You write to kick off a load when the id changes. You write to attach and clean up...

doveletter.dev

Being named the winner of the Golden Kodee Award at KotlinConf 2026 made for an incredibly special day. Huge thanks again to the developer communities and the JetBrains/KotlinConf team for truly honoring my long-term dedication to the community.

KotlinConf@kotlinconf.com · last mo.

What does it take to master deep technical expertise and build a thriving community? The Golden Kodee winners break down their journeys and share technical insights and career advice in our new interview series. 🔗 Learn from our winners here: https://kotl.in/bqs18m