목록전체 글 (69)
Groo
Kotlin Multiplatform(KMP)은 다양한 os를 지원해요. 대표적으로 Android, iOS, MacOS, Windows 등이 있어요. KMP를 사용하면 애플리케이션의 중요한 로직을 한 곳에서 관리하고 이를 각 플랫폼에서 서로 공유하여 사용할 수 있어요. 네트워킹, 데이터 검증, 애널리틱스 등 비즈니스 관련 로직을 최초 1번만 작성하면 되는거죠. 심지어 비즈니스 로직 뿐만 아니라 UI도 각 플랫폼 별로 공유할 수 있어요. Compose Multiplatform을 활용하여 UI를 개발하면 말이죠. KMP의 라이브러리 생태계는 꾸준히 성장중이에요. Ktor, Realm, Apollo 등은 이미 KMP를 지원하고 있어요. KMP는 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..