← ClaudeAtlas

kotlin-coroutines-expertlisted

Expert patterns for Kotlin Coroutines and Flow, covering structured concurrency, error handling, and testing.
aiskillstore/marketplace · ★ 334 · Testing & QA · score 83
Install: claude install-skill aiskillstore/marketplace
# Kotlin Coroutines Expert ## Overview A guide to mastering asynchronous programming with Kotlin Coroutines. Covers advanced topics like structured concurrency, `Flow` transformations, exception handling, and testing strategies. ## When to Use This Skill - Use when implementing asynchronous operations in Kotlin. - Use when designing reactive data streams with `Flow`. - Use when debugging coroutine cancellations or exceptions. - Use when writing unit tests for suspending functions or Flows. ## Step-by-Step Guide ### 1. Structured Concurrency Always launch coroutines within a defined `CoroutineScope`. Use `coroutineScope` or `supervisorScope` to group concurrent tasks. ```kotlin suspend fun loadDashboardData(): DashboardData = coroutineScope { val userDeferred = async { userRepo.getUser() } val settingsDeferred = async { settingsRepo.getSettings() } DashboardData( user = userDeferred.await(), settings = settingsDeferred.await() ) } ``` ### 2. Exception Handling Use `CoroutineExceptionHandler` for top-level scopes, but rely on `try-catch` within suspending functions for granular control. ```kotlin val handler = CoroutineExceptionHandler { _, exception -> println("Caught $exception") } viewModelScope.launch(handler) { try { riskyOperation() } catch (e: IOException) { // Handle network error specifically } } ``` ### 3. Reactive Streams with Flow Use `StateFlow` for state that needs to be retained, a