skydoves
skydoves.bsky.social
skydoves
@skydoves.bsky.social
940 followers 110 following 400 posts
Senior Developer Advocate at @revenuecat.com 🥑 Google Developer Expert for Android and Kotlin. An open-source software engineer. GitHub: github.com/skydoves Dove Letter: github.com/doveletter Book for Android: https://www.android.skydoves.me
Posts Media Videos Starter Packs
Thank you, Jay! It was a great chance to glance at how you carefully designed this SDK 😁
Thank you so much for your support, Ed!! This meant a lot to me ❤️
I just sponsored @skydoves.bsky.social

After seeing (and briefly meeting) Jaewoong @ Droidcon London, his open-source work is by far some of the most impressive & important in our space right now

I highly recommend supporting his continued work if you can ❤️

github.com/sponsors/sky...
Sponsor @skydoves on GitHub Sponsors
Hi, 👋 I'm an Android/OSS Engineer. I have created and contributed more than 70+ open-source libraries related to Android & Kotlin that are used all over the globe. I'd love to give positive effect...
github.com
Reposted by skydoves
Check out some of the design decisions we took when building our KMP SDK 👇
I just published a new article, 'Understanding the native SDK wrapper pattern in Kotlin Multiplatform'.

In the following deep dive, we’ll explore the delegation pattern used by @revenuecat.com, and how it gracefully wraps native Android and iOS SDKs.

www.revenuecat.com/blog/enginee...
Understanding the native SDK wrapper pattern in Kotlin Multiplatform
In this deep dive, we’ll explore how RevenueCat’s delegation pattern wraps native Android and iOS SDKs, enables effortless bidirectional conversion, and minimizes wrapper overhead.
www.revenuecat.com
Additionally, you can trace the reason of your composable function is triggered recomposition with a TraceRecomposition annotation, and export stability compatibility reports using Gradle tasks for reviewing the new stability changes.
Compose Stability Analyzer provides real-time analysis of composable functions' stability directly within Android Studio or IntelliJ. It helps you understand why a composable function is stable or unstable, and offers detailed insights through recomposition tracing and logging.
Droidcon London starts tomorrow! 🇬🇧
Hello, London! 🇬🇧
I'm pleased to see a review of my book, Manifest Android Interview. Thank you to everyone who read this book, supported, and shared feedback!

www.android.skydoves.me
I just published a new blog post 'Understanding Google Play subscription proration: a developer’s guide'.

Google Play's subscription proration system gives you fine-grained control over how users are charged when changing plans.

www.revenuecat.com/blog/enginee...
Understanding Google Play subscription proration: a developer's guide
Google Play's subscription proration system gives you fine-grained control over how users are charged when changing plans.
www.revenuecat.com
Working on more custom options - Compose Stability Analyzer
Oh yea, exactly. So I really need to give a heads-up somewhere, "You don't need to fix every unstable to stable" with Ben Trengrove's blog post. Still, it could be fun to use it as a tool for learning and exploring Compose’s stability system.
Working on a plugin that provides real-time stability analysis for Jetpack Compose functions in Android Studio.
The Ukrainian translation of my recent speaking at DroidKaigi 2025! 🇺🇦

Kudos to Roman, who translated all this video and contributed to the community.

youtu.be/LGfqaQ1qFy8?...
DroidKaigi 2025 - Створення надійних Android-бібліотек (Переклад українською)
YouTube video by Roman Andrushchenko
youtu.be
Super excited to be speaking at Droidcon London 2025 very soon!
I just published a new article, 'Understanding the internals of Flow, StateFlow, and SharedFlow'.

In this article, you’ll dive deep into the internal mechanisms of Flow, StateFlow, and SharedFlow, exploring how they work under the hood.

www.revenuecat.com/blog/enginee...
Understanding the internal of Flow, StateFlow, and SharedFlow
In this article, you'll dive deep into the internal mechanisms of Flow, StateFlow, and SharedFlow, exploring how they work under the hood.
www.revenuecat.com
Published a new article, 'Understanding retain{} internals: A Scope-based State Preservation in Jetpack Compose'.

Now you can try to use an experimental retain{} API. In this article, you’ll dive deep into the internal mechanisms of retain{}.

medium.com/proandroidde...
Understanding retain{} internals: A Scope-based State Preservation in Jetpack Compose
Jetpack Compose is a modern Android UI development with its declarative approach and powerful state management primitives. While remember{}…
medium.com