기본 개념

Publisher

💡 AnyPublisher VS Observable

⭐️ Publisher

struct AnyPublisher: Publisher { 
	... 
}

⭐️ Observable

class Observable: ObservableType { 
	... 
}

💡 Combine Operators

⭐️ map

func map<T>(_ transform: (Output) -> T) -> Just<T>

⭐️ tryMap

func tryMap<T>(_ transform: (Output) throws -> T) -> Result<T, Error>.publisher

이 외에도 Combine에는 RxSwift에 없는 try*** 형태의 Operator들이 존재한다. 이는 Result 타입을 사용해서 에러처리 별도로 핸들링 할 수 있게 해준다.

그리고 merge, combineLatest, zip 연산자의 메소드 이름이 묶을 수 있는 Publisher의 갯수에 따라 메소드 이름 뒤에 숫자가 붙어 있다.

Subject

💡 Combine과 RxSwift에서의 Subject

⭐️ Combine

⭐️ RxSwift

Cancellable

💡 Cancellable vs Disposable

⭐️ Cancellable

var cancellables = Set<AnyCancellable>()

Just(1)
	.sink { number in 
		print(number)
	}
	.store(in: &cancellables)

⭐️ Disposable

var disposeBag = DisposeBag()

Observable.just(1)
	.subscribe(onNext: { number in 
		print(number)
	})
	.disposeBag(by: disposeBag)