clicks(), throttle ์ ํ์ฉํ์ฌ ๋ค์ค ํด๋ฆญ ๋ฐฉ์ง๋ฅผ ํ ์ ์์ผ๋ฉฐ, textChanges(), debounce ๋ฅผ ํ์ฉํ์ฌ ๋ถํ์ํ ์์
์ ํผํ ์ ์์RxBinding Library ( github docs : link )๋ View์ Click, focusChange ๋ฑ Android์์ ๋ฐํํ๋ UI Event๋ฅผ reactiveX์ stream ํ์์ผ๋ก ๋ณํ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค.
์ฆ, ๋ฒํผ ํด๋ฆญ / EditText ํฌ์ปค์ค ํด์ ๋ฑ์ ๋ํ ์ด๋ฒคํธ๋ฅผ ํ๋์ Stream์ผ๋ก ๋ค๋ฃฐ ์ ์๊ฒ ํด ์ฃผ๋ฉฐ, ์ด๋ฅผ ํ์ฉํ์ฌ Stream์ ๋ณํ ํ๊ฑฐ๋ ํฉ์ฑํ๋ ๋ฑ์ ํ์ฉ ํ ์ ์์ต๋๋ค.
์๋์์ ์ฌ์ฉ๋ ์ฝ๋๋ Github์์ ํ์ธ ํ์ค ์ ์์ต๋๋ค.
RxBinding์ ์ฌ์ฉํ์ค ๋ชจ๋ ( app module )์ build.gradle ํ์ผ์ ์๋์ dependency๋ฅผ ์ถ๊ฐ ํด ์ค๋๋ค.
// RxJava2๋ฅผ ํ์ฉํ๋ project ๋ผ๋ฉด rxbinding3๋ฅผ ์ค์น ํด ์ฃผ์ธ์.
implementation 'com.jakewharton.rxbinding3:rxbinding:3.1.0'
// RxJava3๋ฅผ ํ์ฉํ๋ project ๋ผ๋ฉด rxbinding4๋ฅผ ์ค์น ํด ์ฃผ์ธ์.
implementation 'com.jakewharton.rxbinding4:rxbinding:4.0.0'
์ค์น์ ์ฃผ์ํ ์ ์ RxBinding maven์ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.