android flow 연산자(2)
-
[Android A..Z] Flow 중간연산자 정리
flow의 중간연산자는 flow에 대한 변환을 수행하며, 그 결과로 새로운 flow를 반환한다. 이러한 중간연산자들은 종단 연산자가 호출될 때까지 실제 작업을 수행하지 않는 지연(lazy)특성을 가지고 있다. 지연(lazy)이란? 실제 데이터가 수집되기 시작할 때까지 주간 연산자의 작업이 실행되지 않는 것을 말한다. val flow = flowOf(1, 2, 3).map {it * 2} flow.collect { println(it) } 예를들어 1,2,3 값을 가지고 있는 스트림에 대해 map 연산자를 통해 변환한다고 가정한다. 위 코드에서 map함수는 종단 연산자인 collect()함수가 호출될 떄까지 아무런 동작도 하지 않는다. 이렇게 지연 작업을 통해 계산을 미룸으로써 리소스 사용량을 최적화한다...
2024.04.21 -
[Android A..Z] Flow onXXX연산자 예외처리 정리
onEach : 각 아이템 마다 무언가 할 때 fetchBoardDetailItemUseCase(id) .onStart { _boardDetailUiState.update { it.copy( isLoading = true, items = listOf() ) } }.onEach { Log.d(TAG, "Item ${it.toString()}") } Flow에서 아이템을 방출할 때 마다 실행하도록 할 수 있다. 업스트림에서 흘러나오는 값을 그대로 내보낸다. onStart : 시작할 때 fetchBoardDetailItemUseCase(id) .onStart { _boardDetailUiState.update { it.copy( isLoading = true, items = listOf() ) } } onSt..
2024.04.21