Loading...
Loading...
Use coroutines, Flow, structured concurrency, dispatchers, and cancellation-safe Android async pipelines.
npx skill4agent add krutikjain/android-agent-skills android-coroutines-flowandroid-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-flow