Coroutine은 안드로이드에서 백그라운드 스레드에서 코드를 처리할 때 사용하는 하나의 방법이다. 코틀린 언어의 하위 개념인 줄 알았는데, CCoroutine을 사용하는 -즉 백그라운드 태스크가 필요한- 대표적인 경우는네트워크 리퀘스트 (Retrofit, Volley
Coroutine 사용시 Memory Leak을 방지하기 위해 Activity에서는 Activity의 Lifecycle에 맞춰진 CoroutineScope을 사용해야 하며, ViewModel에서도 ViewModel의 Lifecycle에 맞춰진 CoroutineScope
Coroutine의 Flow는 데이터 스트림이며 코루틴 상에서 리액티브 프로그래밍 지원 하기 위한 구성요소이다. 이를 이해하기 위해서는 먼저 리액티브 반응형 프로그래밍이 무엇인지 그리고 Flow가 리액티브 프로그래밍에 대응하여 어떠한 역할을 하는지를 알아야 한다.리액티
Flow는 데이터의 흐름이다. Flow는 데이터의 흐름flow을 발생시키기만 할 뿐 데이터가 저장되지 않는다.따라서 flow만을 이용해 안드로이드의 UIState를 업데이트 하기 위해서는 두가지 방법이 가능했다.화면이 재구성 될때마다 다시 서버 혹은 DB로부터 데이터
앱 내에 검색 기능을 구현할 때, EditText의 변화가 감지될 때마다 api를 호출할 경우 너무 많은 비용이 소모될 수 있다. 단어가 완성되기 전에 몇번이고, 오타를 낼때마다 의도치 않게 api를 호출하고, 이것을 한명의 유저만 수행하는 것이 아니기 때문에...Zi
코루틴 flow는 코루틴 상에서 리액티브 프로그래밍을 지원하기 위해 만들어진 구현체코루틴에서 데이터 스트림을 구현하기 위해서는 Flow를 사용해야 한다.순차적으로 값을 배출해서, 정상적으로 완료하거나 에러를 던지는 비동기 데이터 스트림 입니다. 일시중단할 수 있는 함수
SharedFlow는 StateFlow의 일반화로 생각할 수 있다.StateFlow는 기본적으로 새 구독자가 있을 때 마지막으로 알려진 값을 내보낸다. SharedFlow를 사용하면 내보낼 이전 값 수를 구성할 수 있다.값의 버퍼가 가득 차면 어떤 일이 발생하는지 정의
채널은 일종의 파이프라인이다. 채널을 열고 한쪽에서 값을 보내면 다른 쪽에서 수신하는 개념이다.기본적인 사용법은 간단하다.Channel<...>() 함수를 통해 생성할 수 있으며,데이터를 스트림에 밀어 넣을 땐 send, 스트림에서 받을 땐 receive 를 사용