Closed LentoAssai closed 1 year ago
Rx
@escaping
unowned
weak
AuthCoordinator
๋ฌธ์ ๋ก๊ทธ์ธ API๋ฅผ ํธ์ถํ๋ ์คํธ๋ฆผ์ด complete ๋์ง ์๊ณ ๊ณ์ ๋จ์์์ด ํด๋น ๋ฉ์๋์์ ์ฌ์ฉํ๋ SocialViewController๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ๋์ง ์์์ AuthCoordinator๋ ํด์ ๋์ง ์์์
SocialViewController
ํด๊ฒฐ LoginUseCaseImpl์ ๋ก๊ทธ์ธ ๋ฉ์๋์์ next()๊ฐ ์๋ complete์ ํตํด ์คํธ๋ฆผ ์ข ๋ฃ
LoginUseCaseImpl
next()
complete
do { let fcmToken = try self.localRepository.getToken(key: Constants.Keychain.FCMToken) return self.loginRepository.login(userID: id, name: name, socialPlatform: socialPlatform, fcmToken: fcmToken) .asObservable() .map { [unowned self] accessToken, refreshToken, user in do { try self.localRepository.upsertToken(key: Constants.Keychain.AccessToken, value: accessToken) try self.localRepository.upsertToken(key: Constants.Keychain.RefreshToken, value: refreshToken) try self.localRepository.saveUser(user) // ๊ธฐ์กด์๋ Event.next(()) ์ฌ์ ์คํธ๋ฆผ์ด ์ข ๋ฃ๋์ง ์์์ return .completed } } .catch { error in return .event(.error(error)) } } catch { return .error(error) }
share()
Assembly
๐ ๊ฐ์
181
๐ ์์ ์ฌํญ
๋ฉ๋ชจ๋ฆฌ๋์ ํด๊ฒฐ ๋ฐ reference count ์ค์
Rx
์ ์คํธ๋ฆผ ์ฐ๊ฒฐ ์ ์ฌ์ฉ๋๋@escaping
๋ฉ์๋์unowned
,weak
์ฌ์ฉAuthCoordinator
๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฌธ์ ๋ก๊ทธ์ธ API๋ฅผ ํธ์ถํ๋ ์คํธ๋ฆผ์ด complete ๋์ง ์๊ณ ๊ณ์ ๋จ์์์ด ํด๋น ๋ฉ์๋์์ ์ฌ์ฉํ๋
SocialViewController
๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ๋์ง ์์์AuthCoordinator
๋ ํด์ ๋์ง ์์์ํด๊ฒฐ
LoginUseCaseImpl
์ ๋ก๊ทธ์ธ ๋ฉ์๋์์next()
๊ฐ ์๋complete
์ ํตํด ์คํธ๋ฆผ ์ข ๋ฃAPI ์ค๋ณต ํธ์ถ ํด๊ฒฐ
share()
์ฌ์ฉ)Setting Flow DI
Assembly
๊ตฌํ ๋ฐ ์ ์ฉ