Callback 이벤트로 받은 데이터를 Coroutines의 Flow를 활용한 방법에 대해서 소개했었다. 최근 Medium에서 Channel을 사용한 방법을 소개한 글이 있어 Channel을 사용하는 방법을 정리해보려고 한다. 여기에서 사용한 샘플은 단순한 테스트를 한 것이고, 네트워크가 포함되어 있지 않다. 다만 단순한 테스트로도 발생하는 문제가 있어 정리해두려고 한다. 참고한 글은 Kotlin Channel and WebSocket Complete Example (Also Why Not Flow)이다. 이 글에 도움 될 문서는 아래와 같다. Channels Callback으로 받은 데이터를 Coroutines에서 활용하는 방법! Flow 활용 이 글에서 알아볼 내용 Flow와 Channel의 간단한 ..
runBlocking과 GlobalScope에 대해서 알아보았다. Kotlin Coroutines의 runBlocking은 언제 써야 할까? 잘 알고 활용하자! Kotlin Coroutines의 GlobalScope을 어떻게 사용할 수 있을까? - 사실 추천하지 않는다. 이 두 가지의 코루틴은 이유 없이 사용해서는 안 되는 것들이다. 그럼 사용할 수 있는 건 가장 기본적인 CoroutineScope이 남는다. 필자가 한참 코루틴을 학습할 때 적었던 내용에 CoroutineScope의 활용 방법은 이미 다양하게 나온다. Android에서 사용하는 CoroutineScope을 알아보자 이 글에서는 CoroutineScope의 사용 방법을 좀 더 알아보고(MainScope, CoroutineScope), 무한..
코루틴의 runBlocking에 대해서 이야기했다. Kotlin Coroutines의 runBlocking은 언제 써야 할까? 잘 알고 활용하자! 결국 잘 알고 사용하는 건 문제가 없다. 역시나 잘 못 알고 사용하는 경우라면 사실 사용치 않는 게 맞는다고 생각한다. 이번 글은 코루틴 관련 2 번째 글로 GlobalScope에 대해서 알아보려고 한다. 이 역시 Android 개발에서는 lifecycle과 관련이 깊다. 일반적인 서버나 웹에서도 역시 GlobalScope을 무작정 사용하는 건 맞지 않을 것이다. CoroutineScope은 각각의 라이프 사이클을 별도로 가지고 종료를 할 수 있는 반면 GlobalScope은 싱글톤으로 만들어져있어, 잘못 활용한다면 프로그램 전체에 악영향을 미칠 수 있다. 싱..
코루틴을 활용하다 보면 문서에 나오는 것 외에도 다양하게 활용될 수 있다. 하지만 모든 Scope이 정답은 아니고, 상황에 맞는 게 있다. 안드로이드에서는 당연하게도 CoroutineScope을 사용해 lifecycle을 따르도록 개발하는 걸 권장하는데 onDestroy 시점에 cancel() 할 수 있는 형태로 만들어져 있다. Lifecycle을 따르는 건 매우 자연스럽다. 이 글에서는 다양하게 사용할 수 있는 Scope 중 먼저 runBlocking을 알아본다. 이 글에서 알아볼 내용 runBlocking을 UI에서 사용해도 괜찮을까? runBlocking의 내부 코드를 알아보자. 그럼 runBlocking은 언제 쓰는 게 좋을까? 자세한 내용은 이어 보기 Kotlin Coroutines의 runBl..
안드로이드의 익숙한 BaseXXX class를 알아보고, 설계의 중요성을 알아보자. | I’m an Android Developer. thdev.tech Java에서 상속은 매우 익숙하다. 앞에서 적은 상속! 악마의 속삭임, 그 속에 숨겨진 문제점, Kotlin에서는 Delegation을 활용해 보자. 글을 보면 알겠지만 상속에는 숨겨진 문제점이 있다. 상속을 지키리 면 open을 통해 열고 닫고를 잘해야 하고, 설계를 잘 해야 하고 주석도 잘 달아주는 게 좋다. 처음의 의도와 달라질 수 있는 환경이라면 상속보다는 다른 방법을 활용하는 게 좋다. 이 글에서는 Android에서 흔하게 작성하는 class BaseXXX를 알아보고 좀 더 좋은 접근 방법을 알아보려고 한다. 이 글에서 알아볼 내용 안드로이드에..