목록2024/11/24 (2)
안드로이드 개발자 노트
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/boCSK3/btsKUFpJkXT/gVyC7tplvSwZP1xaQoWKC1/img.png)
플로우(flow)는 비동기적으로 계산해야 할 값의 스트림을 나타낸다.flow 인터페이스 자체는 떠다니는 원소들은 모으는 역할을 하며, 플로우의 끝에 도달할 때까지 각 값을 처리하는 걸 의미한다(flow의 collect는 컬렉션의 foreach와 비슷).Flow의 유일한 멤버함수는 collect이며, Iterable과 Sequence와 비슷하다.interface Flow { suspend fun collect(collector: FlowCollector)}interface Iterable { operator fun iterator(): Iterator}interface Sequence { operator fun iterator(): Iterator} 플로우와 값들을 나타내는 다른 방법들의..
핫 데이터 스트림: 데이터를 지속적으로 발행하며 구독자가 공유하는 실시간 스트림이다. 과거 데이터를 놓칠 가능성이 있지만, 실시간성을 요구하는 상황에 적합하다.콜드 데이터 스트림: 구독자마다 독립적인 데이터 흐름을 생성하여 항상 처음부터 데이터를 제공하며, 비동기 작업이나 기록된 데이터를 처리하는 데 유용하다. 핫 채널, 콜드 플로우 플로우는 다음과 같이 생성할 수 있다.val flow = flow { while (true) { val x = computeNextValue() emit(x) }}이는 채널을 생성하는 produce와 비슷한 형태의 빌더인 것을 알 수 있다.val channel = produce { while (true) { val x..