Team-JubJub / ZupZup-iOS

iOS Client Application for ์ค์ค
MIT License
1 stars 0 forks source link

โ™ป๏ธ Memory refactor #182

Closed LentoAssai closed 1 year ago

LentoAssai commented 1 year ago

๐Ÿ” ๊ฐœ์š”

181

๐Ÿ“ ์ž‘์—…์‚ฌํ•ญ

๋ฉ”๋ชจ๋ฆฌ๋ˆ„์ˆ˜ ํ•ด๊ฒฐ ๋ฐ reference count ์„ค์ •

  1. ๋ฌธ์ œ ๋กœ๊ทธ์ธ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ŠคํŠธ๋ฆผ์ด complete ๋˜์ง€ ์•Š๊ณ  ๊ณ„์† ๋‚จ์•„์žˆ์–ด ํ•ด๋‹น ๋ฉ”์†Œ๋“œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” SocialViewController๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜์ง€ ์•Š์•„์„œ AuthCoordinator๋„ ํ•ด์ œ๋˜์ง€ ์•Š์•˜์Œ

  2. ํ•ด๊ฒฐ 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)
}

API ์ค‘๋ณต ํ˜ธ์ถœ ํ•ด๊ฒฐ

Setting Flow DI Assembly ๊ตฌํ˜„ ๋ฐ ์ ์šฉ