[RxSwift] #6) RxSwift + MVVMํŒจํ„ด [RxCocoa๋ฅผ ํ™œ์šฉํ•œ UITableView ๊ตฌ์„ฑ]

๋ณธ ํฌ์ŠคํŒ…์€ ๊ณฐํŠ€๊น€๋‹˜์˜ ๊ฐ•์˜์˜์ƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋”์šฑ ์ž์„ธํ•œ ๋‚ด์šฉ์€, ๊ฐ•์˜ ์˜์ƒ์„ ์ง์ ‘ ์‹œ์ฒญํ•˜์‹œ๋Š”๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์ด์ „์— ํฌ์ŠคํŒ…ํ•œ RxSwift + MVVMํŒจํ„ด [Subject๋ฅผ ํ™œ์šฉํ•ด๋ณด์ž]์— ์ด์–ด์ง€๋Š” ํฌ์ŠคํŒ… ์ž…๋‹ˆ๋‹ค. ์ €๋ฒˆ ํฌ์ŠคํŒ… ๋ง๋ฏธ์— ๋‚˜์™”๋˜ RxCocoa์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. RxCocoa๋ฅผ ์š”์•ฝํ•˜์ž๋ฉด, [RxSwift์˜ ์š”์†Œ๋“ค์„ UIKit์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก extension ์‹œ์ผœ์„œ ์ ‘๋ชฉ์‹œํ‚จ ๊ฒƒ] ์ด๋ผ๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธ€๋กœ๋งŒ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์œผ๋‹ˆ, ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. override func viewDidLoad() { super.viewDidLoad() viewModel.itemsCount .subscrib..

๐ŸŽ/RxSwift 2023. 2. 1. 03:46
[RxSwift] #5) RxSwift + MVVMํŒจํ„ด [Subject๋ฅผ ํ™œ์šฉํ•ด๋ณด์ž]

๋ณธ ํฌ์ŠคํŒ…์€ ๊ณฐํŠ€๊น€๋‹˜์˜ ๊ฐ•์˜์˜์ƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋”์šฑ ์ž์„ธํ•œ ๋‚ด์šฉ์€, ๊ฐ•์˜ ์˜์ƒ์„ ์ง์ ‘ ์‹œ์ฒญํ•˜์‹œ๋Š”๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์ด์ „์— ํฌ์ŠคํŒ…ํ•œ [RxSwift] #3) RxSwift๋ฅผ ํ™œ์šฉํ•œ MVVMํŒจํ„ด [1] ์— ์ด์–ด์ง€๋Š” ํฌ์ŠคํŒ… ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ด๋ฒˆ ๊ธ€๋ถ€ํ„ฐ ์ฝ”๋“œ๋‚ด์šฉ์„ ์บก์ณ ํ˜•์‹์ด ์•„๋‹Œ, ์ฝ”๋“œ๋ธ”๋Ÿญ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค! ์ด์ „ํฌ์ŠคํŒ…์—์„œ Observable๋กœ ์ƒ์„ฑํ•œ ๋ณ€์ˆ˜๋ฅผ, ๊ตฌ๋… ํ•œ ์ดํ›„์—๋„ ์ง€์†์ ์ธ ๊ฐ’์˜ ๋ณ€๊ฒฝ์„ ๊ด€์ฐฐํ•ด์•ผํ•˜๋Š” ํ•„์š”๊ฐ€ ์ƒ๊ฒจ ์ด๋ฅผ์œ„ํ•ด Observable์„ Subject๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์˜€์Šต๋‹ˆ๋‹ค. (Subject์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์ด ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!) class MenuListViewModel{ var menus : [Menu] = [ Menu..

๐ŸŽ/RxSwift 2023. 1. 30. 07:28
๋ฐ˜์‘ํ˜•
๋งํฌ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
Total
Today
Yesterday