Skip to content

Combine

S004_강현준 edited this page Nov 29, 2021 · 2 revisions

Combine

왜 사용했나요?

  • Swift는 Notification Center, escaping closure, GCD 등 다양한 비동기 처리 API를 지원하지만, 이렇게 다양한 API를 이곳저곳에 사용하면 디버깅 과정에서의 추적과 수정이 어려워진다는 단점이 존재합니다.
  • Combine은 비동기 처리를 publisher라는 동일한 인터페이스를 사용해서 구현하기 때문에 재사용이 편리하고 코드의 구조도 깔끔해진다고 판단하여 사용하였습니다.
  • 또한 Combine을 사용하면 발행자가 구독자를 모르게 하여 의존성을 제거할 수 있습니다.
  • Reactive 프로그래밍을 위한 다른 framework들도 고민하였지만 Combine이 built-in-framework이기 때문에 성능과 안정성 면에서 좋다고 판단하여 사용하기로 결정하였습니다.


Combine

어떻게 적용했나요?

  • 변화를 발행하기 원하는 속성에 @Published PropertyWrapper를 이용하여 Publisher로 만듭니다.
  • ViewModel에서 변화가 감지되기 원하는 속성을 Publisher로 만들고 ViewController에서 해당 변화 sink함수를 이용해 감지하고 원하는 동작을 하도록 구현하였습니다.
  • 뿐만 아니라 각 ViewModel에 Error프로퍼티를 생성하고 Publisher로 만들어 Error 발생 시 ViewController에서 Error를 감지해 처리하도록 구현하였습니다.

수인분당선

규칙

프로젝트

기술 특장점

데일리 스크럼

1주차
2주차
3주차
4주차
5주차
6주차

회고

회의록

1주차
2주차
3주차
4주차
5주차
6주차

멘토링

기술 공유

트러블슈팅

더보기

데모 영상

Clone this wiki locally