목록iOS (42)
study record
Subject 실시간으로 Observable에 값을 추가하고, Subscriber에게 이벤트나 값을 방출할 수 있는 것. Observable이자 Observer인 것이 Subject이다. Subject를 통해 실시간으로 값을 추가하고 구독할 수 있다. Subject를 사용하여 Cold Observable을 Hot Observable로 변환할 수 있다. Relay란? Relay Class는 RxCocoa4에서 구현되었고, PublishRelay와 BehaviorRelay 클래스가 존재한다. RxSwift인 Subject와 다르게 Relay는 RxCocoa의 클래스이다. 또한 Relay는 Subject와 다르게 onNext(_:)가 아닌 acceept(_:)를 통해 새로운 이벤트를 전달한다. 그리고 subs..
Subject Subject는 Observable이자 Observer 두 역할 모두를 수행한다. next 이벤트를 통해 값을 전달받고, 이벤트를 수신할 때마다 subscriber를 통해 방출한다. Subject 종류 PublishSubject : 빈 상태로 시작하여 새로운 값만을 subscriber에 방출 BehaviorSubject : 하나의 초기값을 가진 상태로 시작하여, 새로운 subscriber에게 초기값 또는 최신값을 방출 ReplaySubject : 버퍼를 두고 초기화하며, 버퍼 사이즈 만큼의 값들을 유지하면서 새로운 subscriber에게 방출 Variable : BehaviorSubject를 래핑하고, 현재의 값을 상태로 보존. 가장 최신/초기 값만을 새로운 subscriber에게 방출 P..
AppDelegate AppDelegate는 App(application)이 해야할 일을 대신 구현한다는 의미이다. 앱이 해야할 일이란 백그라운드 진입, 포그라운드(Foreground) 진입, 외부에서의 요청 등이 있다. 1. 앱의 데이터 구조 초기화 2. 앱의 scene을 환경설정(Configuration) 하는 것 3. 앱 밖에서 발생한 알림(배터리 부족, 다운로드 완료 등)에 대응 4. 특정 scene, view, view controllers에 한정되지 않고 앱 자체 타겟이벤트에 대응 5. 애플 푸시 알림 서비스와 같이 실행 시 요구되는 모든 서비스 등록 AppDelegate 클래스 위에는 @main 어노테이션이 있다. 이 어노테이션으로부터 UIApllication이 AppDelegate가 본인의..
Reactive Programming Reactive Programming은 데이터의 흐름과 변화의 전파와 관련된 선언적 프로그래밍 패러다임이다. 먼저 데이터 흐름을 정의하고 데이터의 변화를 관찰하다 데이터가 변화했을 때 연관되는 함수나 수식을 업데이트하는 방식이다. 이렇게 비동기적 데이터 흐름을 다루는 프로그래밍으로, 데이터의 이벤트나 UI 이벤트가 많이 발생하는 경우에 장점을 가진다. 또한 Reactive Programming은 비동기적 데이터 흐름과 전달에 관한 프로그래밍 패러다임이라고 표현할 수 있다. 이러한 Reactive Programming의 핵심은 모든 것을 비동기적 데이터의 Stream으로 간주하고, 다양한 방법으로 비동기 이벤트를 처리한다. 프로그래머가 직접 절차를 명시하여 처리하는 명..