๐Ÿ“š TL; DR

๐Ÿ“– RxBinding

๐Ÿ“š RxBinding

๐Ÿ“– ๊ฐœ์š”

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์„ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.