Flow 2

[Android] Kotlin Flow의 first (with. Cold Steam, Hot Steam)

프로젝트를 리딩 하다 보면, 이런 류의 코드를 종종 볼 때가 있다.var tmp: Int = -1flowData.collect { if (it > 3) { tmp = it cancel() }} 대충 이런 코드를 보게 되면 고치고 싶다는 생각이 든다.왜냐면 Flow에는 해당 로직을 더 간결하게 표현해 줄 좋은 연사자들이 많이 존재하기 때문이다.first()filter { } 원래 잘 돌아가던 로직을 고치기 위해서는 용기가 아닌 지식이 필요하다.과연 기존 로직과 동일하게 동작할까? 좀 더 자세히 알아보자. Flow.first()suspend fun Flow.first(): T흐름에서 방출된 첫 번째 요소를 반환하고 흐름의 수집을 취소하는 터미널 연산자입니다. 흐름이 ​​비어 ..

Android/학습 2025.11.09

[Kotlin] Coroutine Flow란, 그리고 Flow, StateFlow, SharedFlow..

Coroutine Flow란?Flow는 Kotlin Coroutne 기반의 비동기 데이터 스트림 처리 도구이다. 데이터 스트림은 시간 흐름에 따라 연속적으로 발생하는 데이터를 순차적으로 처리하는 개념인데, Java의 Stream과 비슷한 개념이라고 생각하면 된다.Kotlin(함수형 언어)을 자주 사용하는 입장에서는 사실 익숙한 개념이다. Java의 Stream에 대한 간단한 예시List numbers = Arrays.asList(1, 2, 3, 4, 5);numbers.stream() .filter(n -> n % 2 == 0) // 짝수 필터링 .map(n -> n * n) // 제곱 .forEach(System.out::pr..

Android/학습 2025.07.06