All Posts
#42Solving the mystery of recompositions in Compose's LazyList
Debugging recompositions in Jetpack Compose LazyLists. Learn why your list items might be recomposing unnecessarily and how to fix it.
#41Sleepless Concurrency: delay() vs. Thread.sleep()
Explore the difference between delay() and Thread.sleep() in Kotlin. Understand how non-blocking concurrency works from a platform perspective.
#40PermissionFlow: A Reactive API for knowing the status of Android app permissions
Introduction to PermissionFlow: A reactive API for Android that simplifies tracking permission status changes using Kotlin Coroutines and Flow.
#39Simplifying Redux in Kotlin: "mutating" immutable states with Mutekt
Simplify state management in Kotlin with Mutekt. Learn how to write 'mutating' syntax for immutable states in Redux-like architectures.
#38Mastering Android App Performance: Analyzing Bottlenecks with Perfetto ๐ฆ
Master Android app performance profiling with Perfetto. Learn how to identify and fix UI janks and bottlenecks using system tracing.
#37Leveraging the Snapshot Mutation Policies of Jetpack Compose
Understand Snapshot Mutation Policies in Jetpack Compose. Learn how to control when and how your UI recomposes based on state changes.
#36ViewModel: for UI business, not UI operations ๐ฎ
Stop misusing ViewModels! Learn why ViewModels should handle UI business logic, not UI operations like showing toasts or navigation.
#35Exploring "select" expression of Kotlin coroutines
Learn how to use the 'select' expression in Kotlin Coroutines to await multiple suspending functions and select the first one that completes.
#34Combining StateFlows and transforming it into a StateFlow
Master the art of combining multiple StateFlows into a single transformed StateFlow. Explore utilities and best practices for managing complex states in Kotlin.
#33Leveraging the Semaphore concept in Coroutines to limit the parallelism ๐
Explore the concept of Semaphores in Kotlin Coroutines. Learn how to limit parallelism and manage resource access in concurrent programming.
#32Promise compose compiler and imply when you'll change ๐ค
Understand the Compose compiler's stability promises. Learn how @Stable and @Immutable impact recomposition and how to help the compiler optimize your UI.
#31Automate library publishing to Maven Central with GitHub Actions Workflow Dispatch ๐ค
Step-by-step guide to automating JVM library publishing to Maven Central using GitHub Actions and Workflow Dispatch for one-click releases.
#30Filtering and modifying text input in Jetpack Compose way
Learn how to filter and modify user text input in Jetpack Compose. A guide to implementing input constraints and formatting for TextField.
#29Navigating Screens in Jetpack Compose (DevFest India 2021 - Mobile Track)
Recap and resources from my DevFest India 2021 talk on Navigating Screens in Jetpack Compose. Learn the best practices for Compose navigation.
#28๐ โโ๏ธ Don't let ViewModel know about framework level dependencies
Explore best practices for Android ViewModels. Learn why keeping framework references out of ViewModels is crucial for testing and preventing memory leaks.
#27Observing Live connectivity status in Jetpack Compose way!
Learn how to observe live network connectivity status in Jetpack Compose. A reactive approach to handling internet availability in your Android app's UI.
#26Composing composable in the Text line with InlineTextContent in Jetpack Compose
Learn how to use InlineTextContent in Jetpack Compose to embed Composables directly within text lines for rich, interactive text experiences.
#25Providing AssistedInject supported ViewModel for Composable using Hilt
Learn how to provide Hilt ViewModels with AssistedInject to Jetpack Compose Composables for dynamic dependency injection with runtime parameters.
#24Don't let Kotlin's single-expression function ruin your business๐ฒ
Understand why relying on Kotlin's automatic type inference in single-expression functions can lead to subtle bugs and business logic failures.
#23Hide internal members of Kotlin Module from JVMย ๐
Learn how to properly hide internal Kotlin members from JVM to maintain a clean API for Java consumers when developing libraries.



















