Use coroutines, Flow, structured concurrency, dispatchers, and cancellation-safe Android async pipelines.
60
51%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/android-coroutines-flow/SKILL.mdandroid-state-managementandroid-workmanager-notificationsclass TaskRepository(
private val ioDispatcher: CoroutineDispatcher = Dispatchers.IO,
) {
suspend fun refresh(): List<TaskUiModel> = withContext(ioDispatcher) { loadTasks() }
}viewLifecycleOwner.lifecycleScope.launch {
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
viewModel.uiState.collect { render(it) }
}
}try {
repository.refresh()
} catch (error: CancellationException) {
throw error
} catch (error: Exception) {
emit(UiState.Error(error))
}cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTestcd examples/orbittasks-xml && ./gradlew :app:testDebugUnitTestpython3 scripts/eval_triggers.py --skill android-coroutines-flowc5bf673
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.