Kotlin 2

Kotlin Delegation 알아보기(1) - Delegated Class

안드로이드 개발을 하면서 by lazy {} , by remember {} 등 by 키워드를 자주 사용하고 있었다. 그런데 by 키워드가 Kotlin Delegation을 위한 문법이라는 것을 알고 있었지만, Delegation(위임)이라는 것에 대해 제대로 알고 있지 않다는 생각이 들어서 이번 기회에 알아보려고 한다. 👀 어떨 때 상속 대신 위임을 써야할까? 상속과 위임은 모두 객체지향 프로그래밍에서 사용되는 디자인 패턴으로, 두 방식 모두 클래스를 다른 클래스로부터 확장한다. 차이점을 살펴보자면 상속은 해당 클래스에 귀속되는 것이기 때문에 클래스가 다른 클래스들 사이에서 선택할 권한을 주지 않는다. 반면 위임은 객체 자신이 처리해야 할 일을 다른 클래스 인스턴스에게 위임할 수 있는 것이기 때문에 상속..

Kotlin 2023.02.16

Rx 말고, Flow로 다중클릭 방지하기 (throttleFirst)

🤔 고민의 시작 기존의 RxJava를 사용했던 코드들을 Flow로 교체하다가 막힌 부분이 바로 throttleFirst()이다. 다중클릭 방지 등을 위해서는 일정 시간동안 들어온 값 중에서 가장 첫번째 것만 발행하고 나머지는 무시하는 RxJava의 throttleFirst()연산자가 필요한데, Flow에서는 해당 기능의 연산자를 지원하지 않는다. 그래서 이 연산자를 직접 구현해보기로 했다. 🆖 기존 RxJava를 사용한 다중클릭 방지 코드 private fun View.setRxBindingClicks() { this.clicks() .throttleFirst(1000, TimeUnit.MILLISECONDS) .subscribe { onClick(id) } .addTo(disposeBag) } priv..

Android/Coroutine 2022.09.25