---
title: "Tag: kotlin | Shreyas Patil's Blog"
description: "Senior Android Engineer @ Deliveroo. Google Developer Expert for Android. Writing about Android, Kotlin, and AI."
image: "https://blog.shreyaspatil.dev/og.png"
---

# Tag:kotlin

All the articles with the tag "kotlin".

# Tag:kotlin

- [![](https://blog.shreyaspatil.dev/_astro/cover-simplifying-redux-in-kotlin-mutating-immutable-states-with-mutekt.9Pn0d148_28rern.webp)](https://blog.shreyaspatil.dev/simplifying-redux-in-kotlin-mutating-immutable-states-with-mutekt)[## Simplifying Redux in Kotlin: "mutating" immutable states with Mutekt](https://blog.shreyaspatil.dev/simplifying-redux-in-kotlin-mutating-immutable-states-with-mutekt)24 Mar, 2023Simplify state management in Kotlin with Mutekt. Learn how to write 'mutating' syntax for immutable states in Redux-like architectures.
- [![](https://blog.shreyaspatil.dev/_astro/cover-mastering-android-app-performance-analyzing-bottlenecks-with-perfetto.BgE8jAql_1BMFWp.webp)](https://blog.shreyaspatil.dev/mastering-android-app-performance-analyzing-bottlenecks-with-perfetto)[## Mastering Android App Performance: Analyzing Bottlenecks with Perfetto 🚦](https://blog.shreyaspatil.dev/mastering-android-app-performance-analyzing-bottlenecks-with-perfetto)13 Mar, 2023Master Android app performance profiling with Perfetto. Learn how to identify and fix UI janks and bottlenecks using system tracing.
- [![](https://blog.shreyaspatil.dev/_astro/cover-leveraging-the-snapshot-mutation-policies-of-jetpack-compose.BWFSi4Pp_Z1rOWRX.webp)](https://blog.shreyaspatil.dev/leveraging-the-snapshot-mutation-policies-of-jetpack-compose)[## Leveraging the Snapshot Mutation Policies of Jetpack Compose](https://blog.shreyaspatil.dev/leveraging-the-snapshot-mutation-policies-of-jetpack-compose)30 Jan, 2023Understand Snapshot Mutation Policies in Jetpack Compose. Learn how to control when and how your UI recomposes based on state changes.
- [![](https://blog.shreyaspatil.dev/_astro/cover-viewmodel-for-ui-business-not-ui-operations.B0rV28YY_Z14Ohu1.webp)](https://blog.shreyaspatil.dev/viewmodel-for-ui-business-not-ui-operations)[## ViewModel: for UI business, not UI operations 😮](https://blog.shreyaspatil.dev/viewmodel-for-ui-business-not-ui-operations)19 Dec, 2022Stop misusing ViewModels! Learn why ViewModels should handle UI business logic, not UI operations like showing toasts or navigation.
- [![](https://blog.shreyaspatil.dev/_astro/cover-exploring-select-expression-of-kotlin-coroutines.BW0vUATE_1v9eys.webp)](https://blog.shreyaspatil.dev/exploring-select-expression-of-kotlin-coroutines)[## Exploring "select" expression of Kotlin coroutines](https://blog.shreyaspatil.dev/exploring-select-expression-of-kotlin-coroutines)27 Sep, 2022Learn how to use the 'select' expression in Kotlin Coroutines to await multiple suspending functions and select the first one that completes.
- [![](https://blog.shreyaspatil.dev/_astro/cover-combining-stateflows-and-transforming-it-into-a-stateflow.DKBK7XWm_ZcSIy3.webp)](https://blog.shreyaspatil.dev/combining-stateflows-and-transforming-it-into-a-stateflow)[## Combining StateFlows and transforming it into a StateFlow](https://blog.shreyaspatil.dev/combining-stateflows-and-transforming-it-into-a-stateflow)24 Jun, 2022Master the art of combining multiple StateFlows into a single transformed StateFlow. Explore utilities and best practices for managing complex states in Kotlin.
- [![](https://blog.shreyaspatil.dev/_astro/cover-leveraging-the-semaphore-concept-in-coroutines-to-limit-the-parallelism.DCItG-S0_1idvxP.webp)](https://blog.shreyaspatil.dev/leveraging-the-semaphore-concept-in-coroutines-to-limit-the-parallelism)[## Leveraging the Semaphore concept in Coroutines to limit the parallelism 🔀](https://blog.shreyaspatil.dev/leveraging-the-semaphore-concept-in-coroutines-to-limit-the-parallelism)1 Apr, 2022Explore the concept of Semaphores in Kotlin Coroutines. Learn how to limit parallelism and manage resource access in concurrent programming.
- [![](https://blog.shreyaspatil.dev/_astro/cover-promise-compose-compiler-and-imply-when-youll-change.DaTz17b5_Z6UTXT.webp)](https://blog.shreyaspatil.dev/promise-compose-compiler-and-imply-when-youll-change)[## Promise compose compiler and imply when you'll change 🤞](https://blog.shreyaspatil.dev/promise-compose-compiler-and-imply-when-youll-change)10 Mar, 2022Understand the Compose compiler's stability promises. Learn how @Stable and @Immutable impact recomposition and how to help the compiler optimize your UI.
- [![](https://blog.shreyaspatil.dev/_astro/cover-automate-library-publishing-to-maven-central-with-github-actions-workflow-dispatch.hDWG6EWY_ZTO7S6.webp)](https://blog.shreyaspatil.dev/automate-library-publishing-to-maven-central-with-github-actions-workflow-dispatch)[## Automate library publishing to Maven Central with GitHub Actions Workflow Dispatch 🤖](https://blog.shreyaspatil.dev/automate-library-publishing-to-maven-central-with-github-actions-workflow-dispatch)21 Jan, 2022Step-by-step guide to automating JVM library publishing to Maven Central using GitHub Actions and Workflow Dispatch for one-click releases.
- [![](https://blog.shreyaspatil.dev/_astro/cover-filtering-and-modifying-text-input-in-jetpack-compose-way.Z7FsqS6H_Z1AvGfq.webp)](https://blog.shreyaspatil.dev/filtering-and-modifying-text-input-in-jetpack-compose-way)[## Filtering and modifying text input in Jetpack Compose way](https://blog.shreyaspatil.dev/filtering-and-modifying-text-input-in-jetpack-compose-way)20 Dec, 2021Learn how to filter and modify user text input in Jetpack Compose. A guide to implementing input constraints and formatting for TextField.
- [![](https://blog.shreyaspatil.dev/_astro/cover-navigating-screens-in-jetpack-compose-devfest-india-2021-mobile-track.CKQkaBeC_1w8KAu.webp)](https://blog.shreyaspatil.dev/navigating-screens-in-jetpack-compose-devfest-india-2021-mobile-track)[## Navigating Screens in Jetpack Compose (DevFest India 2021 - Mobile Track)](https://blog.shreyaspatil.dev/navigating-screens-in-jetpack-compose-devfest-india-2021-mobile-track)26 Oct, 2021Recap and resources from my DevFest India 2021 talk on Navigating Screens in Jetpack Compose. Learn the best practices for Compose navigation.
- [![](https://blog.shreyaspatil.dev/_astro/cover-dont-let-viewmodel-knew-about-framework-level-dependencies.8M42Dxgw_Z1ffjeS.webp)](https://blog.shreyaspatil.dev/dont-let-viewmodel-knew-about-framework-level-dependencies)[## 🙅‍♂️ Don't let ViewModel know about framework level dependencies](https://blog.shreyaspatil.dev/dont-let-viewmodel-knew-about-framework-level-dependencies)17 Sep, 2021Explore best practices for Android ViewModels. Learn why keeping framework references out of ViewModels is crucial for testing and preventing memory leaks.
- [![](https://blog.shreyaspatil.dev/_astro/cover-observing-live-connectivity-status-in-jetpack-compose-way.CNjy1C0J_2qxllN.webp)](https://blog.shreyaspatil.dev/observing-live-connectivity-status-in-jetpack-compose-way)[## Observing Live connectivity status in Jetpack Compose way!](https://blog.shreyaspatil.dev/observing-live-connectivity-status-in-jetpack-compose-way)17 Aug, 2021Learn how to observe live network connectivity status in Jetpack Compose. A reactive approach to handling internet availability in your Android app's UI.
- [![](https://blog.shreyaspatil.dev/_astro/cover-composing-composable-in-the-text-line-with-inlinetextcontent-in-jetpack-compose.B7tFqKcU_HwPvP.webp)](https://blog.shreyaspatil.dev/composing-composable-in-the-text-line-with-inlinetextcontent-in-jetpack-compose)[## Composing composable in the Text line with InlineTextContent in Jetpack Compose](https://blog.shreyaspatil.dev/composing-composable-in-the-text-line-with-inlinetextcontent-in-jetpack-compose)30 Jul, 2021Learn how to use InlineTextContent in Jetpack Compose to embed Composables directly within text lines for rich, interactive text experiences.
- [![](https://blog.shreyaspatil.dev/_astro/cover-providing-assistedinject-supported-viewmodel-for-composable-using-hilt.GljQ6Sts_Z1PSQz0.webp)](https://blog.shreyaspatil.dev/providing-assistedinject-supported-viewmodel-for-composable-using-hilt)[## Providing AssistedInject supported ViewModel for Composable using Hilt](https://blog.shreyaspatil.dev/providing-assistedinject-supported-viewmodel-for-composable-using-hilt)29 Jun, 2021Learn how to provide Hilt ViewModels with AssistedInject to Jetpack Compose Composables for dynamic dependency injection with runtime parameters.
- [![](https://blog.shreyaspatil.dev/_astro/cover-dont-let-kotlins-single-expression-function-ruin-your-business.B3coERZJ_ZFJ4n7.webp)](https://blog.shreyaspatil.dev/dont-let-kotlins-single-expression-function-ruin-your-business)[## Don't let Kotlin's single-expression function ruin your business😲](https://blog.shreyaspatil.dev/dont-let-kotlins-single-expression-function-ruin-your-business)24 May, 2021Understand why relying on Kotlin's automatic type inference in single-expression functions can lead to subtle bugs and business logic failures.
- [![](https://blog.shreyaspatil.dev/_astro/cover-hide-internal-members-of-kotlin-module-from-jvm.DlxpwfRU_14QGnt.webp)](https://blog.shreyaspatil.dev/hide-internal-members-of-kotlin-module-from-jvm)[## Hide internal members of Kotlin Module from JVM 🔐](https://blog.shreyaspatil.dev/hide-internal-members-of-kotlin-module-from-jvm)17 May, 2021Learn how to properly hide internal Kotlin members from JVM to maintain a clean API for Java consumers when developing libraries.
- [![](https://blog.shreyaspatil.dev/_astro/cover-let-your-delegates-auto-nullify-references.DzBtReak_ZzcXXG.webp)](https://blog.shreyaspatil.dev/let-your-delegates-auto-nullify-references)[## Let your delegates auto-nullify references☠️](https://blog.shreyaspatil.dev/let-your-delegates-auto-nullify-references)12 Mar, 2021Learn how to use Kotlin property delegates to automatically nullify references in Android, preventing memory leaks in Fragments and Activities.
- [![](https://blog.shreyaspatil.dev/_astro/cover-cooking-tasty-code-in-kotlin-part-2.D3BUqTXT_1oL1gm.webp)](https://blog.shreyaspatil.dev/cooking-tasty-code-in-kotlin-part-2)[## 👨‍🍳 Cooking Tasty code in Kotlin 🍴 — Part 2](https://blog.shreyaspatil.dev/cooking-tasty-code-in-kotlin-part-2)1 Jan, 2021Part 2 of 'Cooking Tasty Code'. Dive deeper into Kotlin features like delegation, operator overloading, and more to enhance your coding style.
- [![](https://blog.shreyaspatil.dev/_astro/cover-cooking-tasty-code-in-kotlin-part-1.CxGbDmW3_1yxb10.webp)](https://blog.shreyaspatil.dev/cooking-tasty-code-in-kotlin-part-1)[## 👨‍🍳 Cooking Tasty code in Kotlin 🍴 — Part 1](https://blog.shreyaspatil.dev/cooking-tasty-code-in-kotlin-part-1)24 Dec, 2020Part 1 of the 'Cooking Tasty Code' series. Explore Kotlin's syntactic sugar and features that help write cleaner, more readable, and idiomatic code.

```json
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Shreyas Patil's Blog",
  "url": "https://blog.shreyaspatil.dev/",
  "description": "Senior Android Engineer @ Deliveroo. Google Developer Expert for Android. Writing about Android, Kotlin, and AI.",
  "author": {
    "@type": "Person",
    "name": "Shreyas Patil",
    "url": "https://shreyaspatil.dev/"
  }
}
```
