[RxSwift] 8-1. RxCocoa Overview

miori·2022년 2월 20일
0

RxSwiftBasic

목록 보기
18/29

RxSwift를 21일간 공부하는 루틴
"Rx를 기깔나게 쓰는 신입개발자 도전" 시작 🚀


RxCocoa

이번에는 cocoa touch framework에 리액티브를 더한 RxCocoa에 대해 정리해보겠다.
우선 Cocoa touch framework 는 UIkit 과 Foundatioin 포함하는 iOS 개발에 필수인 프레임워크들를 포함하는 최상위 프레임워크이다.

Package Dependencies

RxSwift의 Package Dependencies 을 보면 RxCocoa라는 폴더가 있다. 이중 Traits 폴더가 있는데, Traits는 UI처리에 특화되어있다. 추후에 자세히 알아보도록 하겠다.

구조

extension

아래 코드는 UIButton+Rx.swift 코드의 일부이다.

import RxSwift
import UIKit

extension Reactive where Base: UIButton {
    
    /// Reactive wrapper for `TouchUpInside` control event.
    public var tap: ControlEvent<Void> {
        controlEvent(.touchUpInside)
    }
}

만약 버튼에 이벤트를 넣고 싶을 때, rx를 사용하지 않는다면 우리는 addTarget 을 추가하여 버튼 이벤트를 구현할 수 있다.

하지만 rxcocoa를 사용하게 된다면, 위의 extension 코드로 인해 btn.rx.tap 이런식으로 사용이 가능하다.
왜나하면, 위의 코드는 TouchUpInside 가 발생할 때마다 구독자에게 next 이벤트를 전달하기 때문이다.

profile
iS를 공부하는 miori 입니다.

0개의 댓글