목록프로그래밍 언어 (22)
Groo
아래 내용은 모두 해당 원글을 기반으로 요약정리한 내용입니다. 그림은 저자가 직접 제작한 것임을 알려드립니다. (출처: Kt World) CoroutineScope는 Coroutine Job이 실행되는 Scope이다. CoroutineScope가 해제되면 해당 Scope에 속한 Job들은 모두 취소된다. 안드로이드의 생명주기에 따라 CoroutineScope를 관리하지 않는다면 Job들이 계속해 동작하여 메모리 누수를 일으킨다. val shoutFlow = flow { for (i in 1..100) { emit("${i}번째 관객 소리질러~~~") delay(1000) } } fun collectShoutFlow() { // Application의 생명주기를 따른다 GlobalScope.launch {..
아래 내용은 모두 해당 원글을 기반으로 요약정리한 내용입니다. 그림은 저자가 직접 제작한 것임을 알려드립니다. (출처: Kt World) flatMapConcat과 flatMapLatest는 원 Flow로부터 발행된 데이터를 새로운 Flow로 변환할 때 순차적으로 진행한다. 그러나 flatMapMerge는 병렬로 변환한다. val stockFlow = flow { emit(66600) // 삼성전자 emit(95400) // 카카오 emit(308500) // 네이버 } @FlowPreview fun increaseStock() { lifecycleScope.launch { stockFlow.flatMapMerge { value -> flow { emit(value * 2) delay(10000) emi..
아래 내용은 모두 해당 원글을 기반으로 요약정리한 내용입니다. 그림은 저자가 직접 제작한 것임을 알려드립니다. (출처: Kt World) flatMapLatest는 원 Flow의 최신 데이터만을 이용하여 새로운 Flow로 변환할 수 있도록 도와준다. 새로운 Flow로 변환하는 과정에서 원 Flow로부터 최신 데이터가 발행될 경우, 기존 Flow 변환을 취소하고 최신 데이터를 사용하여 새로운 Flow 변환을 시작한다. flatMapLatest는 flatMapConcat의 한계를 극복하며 collectLatest와 동작 방식이 유사하다. val stockFlow = flow { emit(66600) // 삼성전자 emit(95400) // 카카오 emit(308500) // 네이버 } @FlowPreview..
아래 내용은 모두 해당 원글을 기반으로 요약정리한 내용입니다. 그림은 저자가 직접 제작한 것임을 알려드립니다. (출처: Kt World) Flow는 여러 Flow를 합쳐 하나의 Flow로 변환할 수 있도록 돕는 Flattening Operator를 제공한다. flatMapConcat은 Flattening Operator의 대표적인 연산자 중 하나이며 여러 Flow를 연결한다. @FlowPreview public fun Flow.flatMapConcat(transform: suspend (value: T) -> Flow): Flow = map(transform).flattenConcat() flatMapConcat은 내부에서 아래 두 가지 과정을 통해 여러 Flow를 하나로 합친다. transform 변수..