์๋ ํ์ธ์ Foma ์ ๋๋ค!
RxSwift ๋ ์ฝ๊ฒ Observable์ ์์ฑํ๊ณ ๋ณํํ๊ณ ํฉ์น๋ ๋ฑ ๋ค์ํ๊ฒ ์ฐ์ฐ์ ํ ์ ์๋๋ก ๋์์ฃผ๋ Operator๋ผ๋ ๊ฒ์ด ์กด์ฌํฉ๋๋ค.
์ค๋์ ๋ค์ํ Operator๋ฅผ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค!
Create
๊ฐ์ฅ ๋จผ์ ์์๋ณผ๊ฑด Observable์ ์์ฑํ๋ Operator ์ ๋๋ค.
1. create
๊ฐ์ฅ ๊ธฐ๋ณธ์ผ๋ก ์ต์ ๋ฒ๋ธ์ ์์ฑํ๋ ๊ฒ์ ๋๋ค.
2. just
just๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ํญ๋ชฉ์ ํ๋๋ง ๊ฐ๋จํ๊ณ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
3. from
From์ just์ ๊ฐ์ด ๊ฐ๋จํ๊ณ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ํ์ง๋ง just๋ ํ๋ฒ์ ๋ชจ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฉ์ถํ๋ ๋ฐ๋ฉด from์ ๊ฒฐ๊ณผ๋ฅผ ํ๋์ฉ ๋ฐฉ์ถํฉ๋๋ค.
4.of
of๋ just์ฒ๋ผ [1,2,3] ๋ฐฐ์ด์ ํ๋ฒ์ ๋ฐฉ์ถํ ์๋ ์๊ณ from์ฒ๋ผ ๊ฐ๊ฐ์ ์์๋ฅผ ํ๋์ฉ ๋ฐฉ์ถํ ์๋ ์์ต๋๋ค. ํ์ง๋ง ์์๋ฅผ ํ๋์ฉ๋ง ๋ฐฉ์ถํ๋ ค๋ฉด ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ์๋ฉ๋๋ค.
Transform
๋๋ฒ์งธ๋ ๋ฐฉ์ถํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณํํ๋ Operator์ ๋๋ค.
1.map
map์ ๋ฐฉ์ถํ ๊ฒฐ๊ณผ๋ฅผ ์ํ๋ ๊ฐ์ผ๋ก ๋ณํํด์ ๋ฐฉ์ถ์ํฌ ์ ์์ต๋๋ค.
2.flatMap
flatMap์ map๊ณผ ๋น์ทํ์ง๋ง ๊ฐ์ ๋ฐฉ์ถํ๋ ๊ฒ์ด ์๋ ํ๋ฆ์์ฒด(Observable)๋ฅผ ๋ฐ๊ฟ์ ํ๋ฆ(Observable)์ ๋ฐฉ์ถํฉ๋๋ค.
์๋ ์์๋ฅผ ์ค๋ช ํ๋ฉด observableInt์์ 1์ ๋ฐฉ์ถํ ๋ observableString์ ๋ฐฉ์ถํ์ฌ A,B,C๊ฐ ์ฐจ๋ก๋๋ก ๋ฐฉ์ถ๋ฉ๋๋ค.
2,3๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐฉ์ถ๋ฉ๋๋ค.
3.scan
์ด์ ์ ๋ฐฉ์ถ๋ ๊ฒฐ๊ณผ์ ์๋กญ๊ฒ ๋ฐฉ์ถ๋ ๊ฒฐ๊ณผ๋ฅผ ํฉ์ณ์ ๋ฐฉ์ถํฉ๋๋ค.
Filter
์ธ๋ฒ์งธ๋ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ์ ํํฐ๋งํ๋ Operator์ ๋๋ค.
1.filter
filter๋ ๋ฐฉ์ถํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ํ๋ ๊ฐ์ ๋ง๊ฒ ํํฐํด์ ๊ฑธ๋ฌ๋ผ ์ ์์ต๋๋ค.
2.first
first๋ ๋ฐฉ์ถํ ๊ฒฐ๊ณผ ์ค ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ๊ฐ์ ๋ฐฉ์ถํฉ๋๋ค. ํน์ง์ ์ต์ ๋๋ก ๋ฐฉ์ถ๋ฉ๋๋ค.
3.takeLast
takeLast๋ ๋ฐฉ์ถํ ๊ฒฐ๊ณผ ์ค ๋์์๋ถํฐ ๋ช๋ฒ์งธ๊น์ง ๋ฐฉ์ถํ ์ง ๊ฒฐ์ ํ๊ณ ๋ฐฉ์ถํ ์ ์์ต๋๋ค.
4.take
takeLast์ ๋ฐ๋๋ก ๋ฐฉ์ถํ ๊ฒฐ๊ณผ๋ฅผ ์ฒซ๋ฒ์งธ๋ถํฐ ๋ช๋ฒ์งธ๊น์ง ๋ฐฉ์ถํ ์ง ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
5.elementAt
๋ฐฉ์ถํ ๊ฒฐ๊ณผ ์ค ์ํ๋ ์ธ๋ฑ์ค์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฉ์ถํ ์ ์์ต๋๋ค.
Combine
๋ค๋ฒ์งธ๋ ๋ ์ต์ ๋ฒ๋ธ์ ๊ฒฐ๊ณผ๊ฐ์ ํฉ์น๋ Operator์ ๋๋ค.
1.merge
merge๋ ๋ ์ต์ ธ๋ฒ๋ธ์ ํ๋์ ์ต์ ธ๋ฒ๋ธ๋ก ํฉ์ณ์ค๋๋ค. 2๊ฐ์ ์ต์ ธ๋ฒ๋ธ ๋ชจ๋ ์๋ฃ๊ฐ ๋์ด์ผ ์๋ฃ๊ฐ ๋ฉ๋๋ค.
2.combineLatest
๋ ์ต์ ธ๋ฒ๋ธ์ ๊ฐ์ฅ ์ต๊ทผ์ ๊ฐ๋ผ๋ฆฌ ํฉ์ณ์ ํ๋์ ๊ฐ์ผ๋ก ๋ง๋ ๋ค ๋ฐฉ์ถํฉ๋๋ค.
3.zip
combineLatest์ ๊ฐ์ด ๋ ์ต์ ธ๋ฒ๋ธ์ ๊ฐ์ ํฉ์ณ์ ๋ฐฉ์ถํ์ง๋ง ๋ ์ต์ ธ๋ฒ๋ธ์ ๊ฒฐ๊ณผ๊ฐ์ด ์ง์ด ๋ง์์ผ ๋ฐฉ์ถํ๊ฒ ๋ฉ๋๋ค.
์ค๋ ์ด๋ ๊ฒ 4๊ฐ์ง ์ข ๋ฅ์ ์คํผ๋ ์ดํฐ๋ฅผ ์์๋ณด์๋๋ฐ์.
์๋ฌํธ๋ค๋ง์ด๋ Schedular์ ๊ด๋ จ๋ Operator๋ ๋ฐ๋ก ์ ๋ฆฌํด์ ์ฐพ์๋ต๋๋ก ํ๊ฒ ์ต๋๋ค~~
'๐ Language > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[RxCocoa] Relay๋? (0) | 2021.02.03 |
---|---|
[RxSwift] Subject๋? (0) | 2021.01.28 |
[RxSwift] Observable ๊ฐ๋จํ๊ฒ ์์๋ณด๊ธฐ (0) | 2020.12.29 |
[RxSwift] Disposable๊ณผ DisposeBag (0) | 2020.12.26 |
[Swift] @discardableResult๋? (0) | 2020.12.24 |
๋๊ธ