Skip to content

Commit 813a8d7

Browse files
leejh08claude
andcommitted
๐Ÿ› :: Completable.asObservable().flatMap dead-code ๋ฒ„๊ทธ ์ˆ˜์ •
Completable.asObservable()์€ Observable<Never>๊ฐ€ ๋˜์–ด .next ์ด๋ฒคํŠธ๊ฐ€ ์ ˆ๋Œ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ด๋ฅผ .flatMap/.map์œผ๋กœ ๋ฐ›์•„ Mutation์„ ๋งŒ๋“ค๋˜ ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ณด์žฅํ•˜๋Š” dead code์˜€์Œ. RxSwift ํ‘œ์ค€ ํŒจํ„ด์ธ Completable.andThen(Observable<Element>)์œผ๋กœ ๊ต์ฒด. - ์‹ค์ œ ๋™์ž‘ ๋ฒ„๊ทธ ์ˆ˜์ •: AlarmReactor(์ฝ์Œ ์ฒ˜๋ฆฌ), MyPageReactor(ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ๋ณ€๊ฒฝ), BugReportReactor(์ œ์ถœ ์™„๋ฃŒ), NotificationSettingReactor (์•Œ๋ฆผ ํ† ๊ธ€) โ€” API ์„ฑ๊ณต ํ›„ ์˜๋„ํ•œ Mutation์ด ๋ฐœ์ƒํ•˜๋„๋ก ์ˆ˜์ • - ๋ฌดํ•ดํ•˜์ง€๋งŒ ์˜คํ•ด๋ฅผ ๋ถ€๋ฅด๋˜ dead code ์ •๋ฆฌ: InterestFieldReactor, OnboardingReactor, RecruitmentReactor, RecruitmentDetailReactor, SearchRecruitmentReactor, WinterInternReactor, WinterInternDetailReactor Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 4e6f09d commit 813a8d7

11 files changed

Lines changed: 19 additions & 39 deletions

File tree

โ€ŽProjects/Presentation/Sources/BugReport/BugReportReactor.swiftโ€Ž

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,7 @@ extension BugReportReactor {
7979
developmentArea: DevelopmentType(localizedString: currentState.majorType) ?? .all,
8080
attachmentUrls: currentState.imageList
8181
))
82-
.asObservable()
83-
.map { _ in Mutation.setBugReportCompleted }
82+
.andThen(.just(.setBugReportCompleted))
8483
}
8584
}
8685

โ€ŽProjects/Presentation/Sources/Home/Alarm/AlarmReactor.swiftโ€Ž

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,7 @@ extension AlarmReactor {
5757
new: false
5858
)
5959
return readNotificationUseCase.execute(id: notification.notificationID)
60-
.asObservable()
61-
.flatMap { _ -> Observable<Mutation> in
62-
.just(.updateNotification(index: index, notification: updatedNotification))
63-
}
60+
.andThen(.just(.updateNotification(index: index, notification: updatedNotification)))
6461
}
6562
}
6663

โ€ŽProjects/Presentation/Sources/InterestField/InterestFieldReactor.swiftโ€Ž

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,10 @@ extension InterestFieldReactor {
7070
case .selectButtonDidTap:
7171
let codeIDs = currentState.selectedInterests.map { $0.code }
7272
return changeInterestsUseCase.execute(codeIDs: codeIDs)
73-
.asObservable()
7473
.do(onCompleted: { [weak self] in
7574
self?.steps.accept(InterestFieldStep.interestFieldCheckIsRequired)
7675
})
77-
.flatMap { _ in Observable<Mutation>.empty() }
76+
.andThen(.empty())
7877
}
7978
}
8079

โ€ŽProjects/Presentation/Sources/MyPage/MyPageReactor.swiftโ€Ž

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,23 +88,19 @@ public final class MyPageReactor: BaseReactor, Stepper {
8888
guard let self = self,
8989
let url = presignedURLs.first else { return .empty() }
9090

91-
return Observable.zip(
91+
return Completable.zip(
9292
self.uploadImageToS3UseCase.execute(
9393
presignedURL: url.presignedUrl,
9494
data: file.file
95-
)
96-
.asObservable(),
95+
),
9796
self.changeProfileImageUseCase.execute(url: url.filePath)
98-
.asObservable()
9997
)
100-
.flatMap { _ in
101-
Observable.concat([
102-
.just(.updateProfileImage),
103-
self.fetchStudentInfoUseCase.execute()
104-
.asObservable()
105-
.map { Mutation.setStudentInfo($0) }
106-
])
107-
}
98+
.andThen(Observable.concat([
99+
.just(.updateProfileImage),
100+
self.fetchStudentInfoUseCase.execute()
101+
.asObservable()
102+
.map { Mutation.setStudentInfo($0) }
103+
]))
108104
}
109105

110106
case .notificationSettingDidTap:

โ€ŽProjects/Presentation/Sources/NotificationSetting/NotificationSettingReactor.swiftโ€Ž

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,12 @@ extension NotificationSettingReactor {
7575
token: Messaging.messaging().fcmToken ?? "",
7676
notificationType: notificationType
7777
)
78-
.asObservable()
79-
.map { _ in .toggleNotificationState(notificationType) }
78+
.andThen(.just(.toggleNotificationState(notificationType)))
8079

8180
case .toggleAllNotifications:
8281
let newState = !currentState.isAllNotificationEnabled
8382
return subscribeAllNotificationUseCase.execute()
84-
.asObservable()
85-
.map { _ in .setAllNotificationStates(newState) }
83+
.andThen(.just(.setAllNotificationStates(newState)))
8684
}
8785
}
8886

โ€ŽProjects/Presentation/Sources/Onboarding/OnboardingReactor.swiftโ€Ž

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ public final class OnboardingReactor: BaseReactor {
8686
.catch { _ in .just(.setShowNavigationButton) }
8787

8888
let serverStatusCheck = fetchServerStatusUseCase.execute()
89-
.asObservable()
90-
.flatMap { _ in Observable<Mutation>.empty() }
89+
.andThen(Observable<Mutation>.empty())
9190
.catch { _ in .just(.setServerStatusError) }
9291

9392
return .merge(tokenCheck, serverStatusCheck)

โ€ŽProjects/Presentation/Sources/Recruitment/RecruitmentReactor.swiftโ€Ž

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,7 @@ extension RecruitmentReactor {
101101
case let .bookmarkButtonDidTap(id):
102102
return .concat([
103103
.just(.updateBookmark(id)),
104-
bookmarkUseCase.execute(id: id)
105-
.asObservable()
106-
.flatMap { _ in Observable<Mutation>.empty() }
104+
bookmarkUseCase.execute(id: id).andThen(.empty())
107105
])
108106

109107
case let .recruitmentDidSelect(id):

โ€ŽProjects/Presentation/Sources/RecruitmentDetail/RecruitmentDetailReactor.swiftโ€Ž

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,8 @@ extension RecruitmentDetailReactor {
7070
return .empty()
7171
}
7272
return bookmarkUseCase.execute(id: recruitmentID)
73-
.asObservable()
7473
.catch { _ in .empty() }
75-
.flatMap { _ in Observable<Mutation>.empty() }
74+
.andThen(.empty())
7675

7776
case .applyButtonDidTap:
7877
guard let detail = currentState.recruitmentDetail else {

โ€ŽProjects/Presentation/Sources/SearchRecruitment/SearchRecruitmentReactor.swiftโ€Ž

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@ extension SearchRecruitmentReactor {
7171
])
7272

7373
case let .bookmarkButtonDidTap(id):
74-
return bookmarkUseCase.execute(id: id)
75-
.asObservable()
76-
.flatMap { _ in Observable<Mutation>.empty() }
74+
return bookmarkUseCase.execute(id: id).andThen(.empty())
7775

7876
case let .recruitmentDidSelect(id):
7977
steps.accept(SearchRecruitmentStep.recruitmentDetailIsRequired(id: id))

โ€ŽProjects/Presentation/Sources/WinterIntern/WinterInternReactor.swiftโ€Ž

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,7 @@ extension WinterInternReactor {
9090
case let .bookmarkButtonDidTap(id):
9191
return .concat([
9292
.just(.updateBookmark(id)),
93-
bookmarkUseCase.execute(id: id)
94-
.asObservable()
95-
.flatMap { _ in Observable<Mutation>.empty() }
93+
bookmarkUseCase.execute(id: id).andThen(.empty())
9694
])
9795

9896
case let .recruitmentDidSelect(id):

0 commit comments

Comments
ย (0)