Slide 7
Slide 7 text
課題2: RxSwiftとConcurrencyの混在で保守性が下がった
RxSwiftがConcurrencyと混在して冗長なラッパが生まれる
RxSwift版 async処理をSingleでラップ
func deletePost(conversationID: String, postID: String) -> Single {
return .create { observer in
let task = Task { [weak self] in
guard let self else { return }
let result = await self.conversationUseCase.deletePost(
conversationID: conversationID,
postID: postID
)
switch result {
case .success:
observer(.success(()))
case let .failure(error):
observer(.failure(error))
}
}
return Disposables.create { task.cancel() }
}
}
ブリッジコード
async呼び出し1回を
Singleで包み直す
オレンジ行=包む処理
二重修正
SCC対応とRx移行を
別々に進めると、
同じ箇所を二度直す