ย
ย
ย
- RxSwift
- RxCocoa
- Naver NMapsMap(๋ค์ด๋ฒ ๋งต)
- Google Firebase ๋ฐ Firestore
- GeoFire
ย
- RxSwift with MVVM
- DelegateProxy with DelegateProxyType (Delegate ํจํด ์ผ๋ ๊ฒ ๋ฆฌํฉํ ๋ง)
ย
-
RxSwift์ ๋ํ ์ดํด
RxSwift ๊ณต๋ถ๋ ๊ณฐํ๊น๋ ์ ํ๋ธ ๊ฐ์๋ก ์์ํ์์๋ค. ๋ค์ผ๋ฉด์ ์ดํดํ๋ ๊ฒ๋ ์ด๋ ค์ ์ง๋ง ์ง์ ์ฌ์ฉํ๋ ๊ฒ์ ํ์คํ ๋ ์ด๋ ค์ ๋ค.
๋ด๊ฐ ๋๋ ์ฅ์ : ๊ธฐ์กด์ (ํด๋ก์ ๋ฅผ ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ผ๋ก) @escaping completionHandler๋ฅผ ๊ตฌํํ๋ ๊ฒ์ Observable๋ก ๋ฐ๊ฟ๋ณด๋ ์ฝ๋๋ ๋ ๊ฐ๊ฒฐํด์ก๋ค.(๋์ค์ ๋ค์ ๋ด๋ ํจ์ฌ ๊ฐ๋ ์ฑ์ด ์ข์. ํนํ ํด๋ก์ ๋ฅผ ์ฐ๋ค๋ณด๋ฉด retain cycle์ ์ ๊ฒฝ์จ์ค์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋๋ฐ ์ด๊ฒ ํธํด์ก๋ค. ๋ฌผ๋ก RxSwift๋ retain cycle์ ์ ๊ฒฝ์จ์ฃผ์ด์ผ ํ์ง๋ง, ํด๋ก์ ๋ฅผ ์ค์ฒฉํด์ ์ฐ๋ ๊ธฐ์กด์ ๋ฐฉ์๋ค๋ณด๋ค๋ ํ์ ์ด ํจ์ฌ ์ฌ์์ก๋ค.) -
Code Refactoring (Delegate ํจํด์ DelegateProxy ์ด์ฉํ์ฌ ๋ฆฌํฉํ ๋ง)
RxSwift๋งํผ์ด๋ ์ด๋ ค์ ๋ DelegateProxy..
Delegate ํจํด์ ๋ง์ด ์ฐ์ด๊ธด ํ์ง๋ง RxSwift์ Observable์คํ์ผ๊ณผ๋ ๋ง์ง ์๋๋ค. ์ด๋ฅผ ํด๊ฒฐํด ์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก DelegateProxy๋ค. (Delegate๋ฅผ ๊ฐ์ธ์(?) Observableํ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ํด์ค๋ค. fake delegate object๋ฅผ ์ด์ฉํ๋ค๊ณ ํ๋ค.) -
Google Firestore์ GeoFire์ ํธํ์ฑ ๋ฌธ์
์ด ๋ฌธ์ ๋๋ฌธ์ ์ฒ์์ ๋ง์ด ํค๋งธ๋ค. ์ต์ Google FireStore์๋ GeoFire๋ฅผ ๋ง๋ถ์ผ ์๊ฐ ์์๋ค. ์์กด์ฑ ๋ฌธ์ ๋ก ์ธํด GeoFire 4.1.0์๋ Google FirebaseFirestore 1.x ์ค์น๊ฐ ํ์ํ์๋ค. (Firebase ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฝ์ฐ 6.x ์ค์น ํ์ํ์์)
ํ์ฌ๋ GeoFire์์ ์์กด์ฑ ์ค์ ์ ์ ๋ฐ์ดํธ ํด์ Firebase 7.x ๊น์ง ๊ฐ๋ฅํ๋ค. (Google API ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณ ๋ฒ์ ์ ๊ฒฝ์ฐ ์ดํ์ ๊ตฌ๊ธ์์ ํ๊ฐ์ง๋ก ํตํฉํ์๋ค. - ์๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณ๋ก ๋ฒ์ ์ด ๋ฌ๋๋ค. - )
๋คํํ๋ pod์ด ์์กด์ฑ๋ค์ ๋ค ๊ณ ๋ คํด์ ์ค์นํด์ค ๋๋ถ์ ํฐ ๊ณ ์์ ํ์ง ์์๋ค. -
Storyboard Autolayout
Autolayout์ ๋ํด ์์ง ์๋ฒฝํ ์์งํ์ง ๋ชปํ๋ค. ๊ณต๋ถ๋ฅผ ๋ ํด์ผ ํ ๊ฒ ๊ฐ๋ค.(์ฝ๋๋ฅผ ์ด์ฉํ์ฌ ๋์ ์ผ๋ก ์ค์ ํ๋ ๊ฒ๋..) -
์ปค์คํ ๋ทฐ(Custom View)
-
RxSwift์ ๋ํ ๋ถ์กฑํ ์ดํด
flatMap operator๋ฅผ ํตํด ํด๋ก์ ๋ด๋ถ์์ ๋ณ๋์ Observable ๋ฐ์ดํฐ๋ฅผ returnํ์ฌ ๋ฉ์ธ(๋ฐ๊นฅ) ์ํ์ค์ ์ฃ๋ ๊ฒฝ์ฐ ์ด๋ ์ํธ์ค์ ๋ถ๊ธฐ๊ฐ ์๋๋ค. (๋ถ๊ธฐ์ธ์ค ์์๋ค.)
๋ด๋ถ Observable์ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ์ถ์ถํด์ ๋ฉ์ธ ์ํ์ค์ ๋๋ ๊ฒ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ ๋ฏ ํ๋ค. ๋ฐ๋ผ์ flatMap์ ํตํด ์ถ์ถ๋๋ ๋ฐ์ดํฐ๊ฐ error์ธ ๊ฒฝ์ฐ ๋ฉ์ธ ์ํ์ค์๋ ์ํฅ์ ๋ฏธ์น๋ค.
- ์ด์ ๋ํ ์ฐธ๊ณ ๋งํฌ
- ์ด์๋ ๋ณ๋๋ก ์ฐธ๊ณ ํ๋ฉด ์ข์ ๋งํฌ
ย
flatMap ๋ฟ๋ง ์๋๋ผ Observable.zip์ ๋์๊ณผ take์ ๋์์ ๋ํด์๋ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ ์ฑ ์ฌ์ฉํ๋ค.
- RxSwift์ ๋ํด ์ง์ ํ ์คํธํด๋ณธ ๊ธ๋ค
ย
ย
ย
ย