์ด์ ๊ธ ์์ ๋ง๋ RxStarwars ํ๋ก์ ํธ์์ RxTest๋ฅผ ์ฌ์ฉํ Unit Test๋ฅผ ์ถ๊ฐํด๋ณด๊ฒ ์ต๋๋ค
๊ณ ๊ณ ์ฝ ~~~ ! ๐๐๐
Hot Observables
subscribe ์ ์๊ด์์ด Scheduler ์ ์ง์ ๋ ๋๋ก ์ด๋ฒคํธ๋ฅผ ๋ฐฐ์ถ.
Cold Observables
ํ๋ก์ ํธ์ Observables๊ณผ ๋์ผํ๊ฒ ๋์.
subscribe๊ฐ ์๊ธฐ๋ฉด ์คํ๋๋ค.
์ง์ RxTest ์ถ๊ฐํด๋ณด๊ธฐ
์๋,, SPM ๋ก RxSwift๋ฅผ ์ถ๊ฐํ์ง๋ง Xcode ์์ฒด์ ์๋ฌ๋ก ํ
์คํธ ์ฝ๋๋ ์์ฑ, ๋น๋ ๋์์ง๋ง
์คํ์ด ๋์ง์๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค ………. ๐๐ฅ
– ๊ด๋ จ ์ด์ ๋งํฌ
Carthage๋ก ๊ฐ์ํ๋ ์ฑ๊ณตํ๋ค๋ ์ฝ๋ฉํธ๋ฅผ ๋ณด๊ณ ๊ฐ์ํ๋ ์ฑ๊ณตํ๋ค ~ ! ํด
์ถ๊ฐํ ํ๋ก์ ํธ๋ ๐ RxSwift | MVVM withย RxSwift ์์ ๋ง๋ RxStarwars.
๐จ ์ถ๊ฐ๋ Test ์ฝ๋๋ GitHub RxTraining/RxStarwars/RxStarwarsTests/
๋๋์
– Rx๊ฐ ๋ฌธ์ ์์ด ๋์ํ๋ค๋ ์ ์ ํ์ ViewModel ๋ง ํ์ธํ๋ฉด ๋๋ค๋๊ฒ ์ฐธ ๊น๋ํ๋ค.
– View์ ์ฝ๋์ ์์กด์ฑ์ ๋ถ๋ฆฌ์ํค๊ณ Test๊ฐ ๊ฐ๋ฅํ๊ฑด ์ต ~~ ๊ณ !
– Scheduler๋ฅผ ์ ํ์ฉํ๋ฉด Mock ๋ฐ์ดํฐ๋ ๊ฐ๋จํ๊ฒ ์ฃผ์
, ํ์ธํ ์ ์๋ค.
๊ณ ๋ฏผํ๋ ๋ถ๋ถ
– Test๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ป๋ ์ํคํ
์ณ๊ฐ MVP์์๋ค.
MVP์์๋ ์๋ฒฝํ View์์ ์์กด์ฑ์ ๋์ด๋ผ ์ ์์๊ธฐ์ ์ต๋ํ ์ธ ์ ์๋ ํ
์คํธ๋ฅผ ์์ฑํ์๋ ์ฃผ์์๋ค. (TDD์๋ค๋ฉด ๋ ๋ค๋ฅธ ์๊ธฐ๊ฐ ๋๋ TDD๊ฐ ์๋ ์ฝ๋์ ์ด์ผ๊ธฐ,,)
์ด๋ฒ ํ
์คํธ์์๋ ๊ฝค๋ ๊ตฌ์ฒด์ ์ผ๋ก ํ
์คํธ๋ฅผ ์ธ ์ ์์์ด์ ์ด๋๊น์ง ํญ๋ชฉ์ ์์ฑํด์ผ ViewModel์์ ํ์ธํด์ผ ํ๋ ๋ถ๋ถ์ ๊ฐ๊ฒฐํ๊ฒ ํ
์คํธํ ์ ์๋์ง์ ๋ํด์ ๊ณ ๋ฏผ์ ํ์๋ค.
– ๋ฌผ๋ก ๊ฐ๋ฐ์ ์ฌ๋์ด์ง๋ง ๋๋ View์์ ViewModel์ ๋ฐ๋ผ๋ ๊ฒ. ํ์๋ก ํ๋ ๊ฑธ ํ์ธํ๋ ์ ๋๊น์ง ์์ฑํ๋ค. (= UITableView ํ์ ํ์ธ)
– Cold/Hot ์ ์ ์ ํ ์ฌ์ฉ.
– ์ด๊ฑด ๋ค์ํ ๊ฒฝ์ฐ์ ์์์ ์ฌ๋ฌ ํ
์คํธ๋ฅผ ์์ฑํด๋ณด๋ฉฐ ๋ถ๋ชํ์ผ ๊ธฐ์ค์ด ์๊ธธ ๊ฒ ๊ฐ๋ค ๐