Google Developer Expert for Android and Firebase. An open-source software engineer.
GitHub: github.com/skydoves
Dove Letter: doveletter.skydoves.me/
Android Book: www.android.skydoves.me
android-review.googlesource.com/c/platform/f...
android-review.googlesource.com/c/platform/f...
An IntelliJ + Kotlin Compiler plugin for Android developers, providing real-time analysis of Jetpack Compose composable functions' stability directly within Android Studio or IntelliJ.
plugins.jetbrains.com/plugin/28767...
An IntelliJ + Kotlin Compiler plugin for Android developers, providing real-time analysis of Jetpack Compose composable functions' stability directly within Android Studio or IntelliJ.
plugins.jetbrains.com/plugin/28767...
In this article, you’ll explore five Kotlin internals that most developers should know, revealing what really happens when the compiler transforms your Kotlin code into Java bytecode.
skydoves.medium.com/5-kotlin-int...
In this article, you’ll explore five Kotlin internals that most developers should know, revealing what really happens when the compiler transforms your Kotlin code into Java bytecode.
skydoves.medium.com/5-kotlin-int...
250+ quiz questions + 380+ practical questions with complete answers for all of them that were previously left as open questions in the book.
It will take another 2~3 months to complete.
250+ quiz questions + 380+ practical questions with complete answers for all of them that were previously left as open questions in the book.
It will take another 2~3 months to complete.
In this article, you'll explore how to build a Google Maps-style bottom sheet using FlexibleBottomSheet, covering how to configure three expansion states.
doveletter.skydoves.me/preview/arti...
In this article, you'll explore how to build a Google Maps-style bottom sheet using FlexibleBottomSheet, covering how to configure three expansion states.
doveletter.skydoves.me/preview/arti...
Now each lesson features a Code Playground with ready-to-run Kotlin examples, step-by-step explanations, and open challenges that let you practice concepts immediately after learning them.
doveletter.skydoves.me/course/kotlin
Now each lesson features a Code Playground with ready-to-run Kotlin examples, step-by-step explanations, and open challenges that let you practice concepts immediately after learning them.
doveletter.skydoves.me/course/kotlin
doveletter.skydoves.me/preview/arti...
doveletter.skydoves.me/preview/arti...
Now, it introduces a real-time recomposition tracing, Recomposition Heatmap, and Recomposition Cascade Visualizer directly in your IDE.
github.com/skydoves/com...
Now, it introduces a real-time recomposition tracing, Recomposition Heatmap, and Recomposition Cascade Visualizer directly in your IDE.
github.com/skydoves/com...
Dive deep into the internal mechanisms of the kotlinx.serialization compiler plugin and explore the real use cases from the @revenuecat.com SDK.
www.revenuecat.com/blog/enginee...
Dive deep into the internal mechanisms of the kotlinx.serialization compiler plugin and explore the real use cases from the @revenuecat.com SDK.
www.revenuecat.com/blog/enginee...
doveletter.skydoves.me/preview?tab=...
doveletter.skydoves.me/preview?tab=...
Real-time visibility into your composables' stability directly in Android Studio, and automatically catch stability regressions in CI before they reach production.
github.com/skydoves/com...
Real-time visibility into your composables' stability directly in Android Studio, and automatically catch stability regressions in CI before they reach production.
github.com/skydoves/com...
Unlock the 'how' and 'why' behind Kotlin internals and fundamentals with 160 interactive quizzes, including advanced topics, and earn a certificate upon completion.
doveletter.skydoves.me/course/kotlin
Unlock the 'how' and 'why' behind Kotlin internals and fundamentals with 160 interactive quizzes, including advanced topics, and earn a certificate upon completion.
doveletter.skydoves.me/course/kotlin
doveletter.skydoves.me/preview/arti...
doveletter.skydoves.me/preview/arti...
Your support motivates me to keep contributing to the open-source community and the Android, Kotlin, and Compose ecosystems.
Your support motivates me to keep contributing to the open-source community and the Android, Kotlin, and Compose ecosystems.
The KEEP proposal about the new visibility level sits between internal and public.
doveletter.skydoves.me/preview/arti...
The KEEP proposal about the new visibility level sits between internal and public.
doveletter.skydoves.me/preview/arti...
Test your knowledge on Android, Jetpack Compose, and Kotlin. Select all correct answers for each question. Each question is worth 10 points.
doveletter.skydoves.me/quiz
Test your knowledge on Android, Jetpack Compose, and Kotlin. Select all correct answers for each question. Each question is worth 10 points.
doveletter.skydoves.me/quiz
Test your knowledge on Android, Jetpack Compose, and Kotlin. Select all correct answers for each question. Each question is worth 10 points.
doveletter.skydoves.me/quiz
I’m glad to help developers and give back to the community through my open-source work 💚
I’m glad to help developers and give back to the community through my open-source work 💚
Explains how to correctly handle common edge cases in Google Play Billing, including pending purchases, errors, multi-quantity consumables, subscription downgrades, and etc.
www.revenuecat.com/blog/enginee...
Explains how to correctly handle common edge cases in Google Play Billing, including pending purchases, errors, multi-quantity consumables, subscription downgrades, and etc.
www.revenuecat.com/blog/enginee...
With 160 quizzes and exercises (including advanced ones), you can test your knowledge and earn a certificate upon completion.
With 160 quizzes and exercises (including advanced ones), you can test your knowledge and earn a certificate upon completion.
The new visibility (shared internal) level sits between internal and public, allowing modules to explicitly declare which internals they share and with whom.
doveletter.skydoves.me/preview/arti...
The new visibility (shared internal) level sits between internal and public, allowing modules to explicitly declare which internals they share and with whom.
doveletter.skydoves.me/preview/arti...