목록프로그래밍 언어 (23)
Groo

지난달, 5월 21일에 Kotlin 2.0이 릴리즈 되었는데요.안드로이드 개발자 관점에서 중요한 변경사항들 살펴보겠습니다.Gradle 8.3 이상 버전을 사용하는 것을 권장함Gradle 최소 버전은 여전히 6.8.3이긴 하나 Kotlin 2.0에서 Gradle 8.3 미만 버전을 사용하면 아래 케이스들에서 몇 가지 제한사항들이 생길 수 있어서 Gradle 8.3 이상 버전을 사용하는 것을 권장합니다. buildSrc 방식으로 소스 코드를 컴파일하는 경우included builds 방식으로 Gradle 플러그인을 컴파일하는 경우상세 내용 더 보기Compose 컴파일러가 Gradle plugin 방식으로 변경됨이전까지는 Compose 컴파일러와 Kotlin이 따로 관리가 되어서 서로 호환되는 버전으로 매핑시..

아래 내용은 모두 해당 원글을 기반으로 요약정리한 내용입니다. 그림은 저자가 직접 제작한 것임을 알려드립니다. (출처: 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..