RxSwift 5

RxSwift 간단 핵심 정리

Reactive Programming entity 방출 요소에 의존, 변경 사항을 구독, 해당 변경 사항에 반응. 왜 RxSwift 이용하는가? 상태를 다시 확인하고 수동으로 코드에 조건을 입력하지 않아도 됨 if -else 나 switch 구문 등을 많이 줄일 수 있다. 비동기 실행 코드를 observable-subscriber method에 의해 깔끔하게 짤 수 있음 핵심 요소 1. Observable : 모든 데이터 유형이 될 수 있는 Entity 모든 다른 유형의 이벤트가 발생 시 Observer에게 요소를 방출 2. Observer: 관찰 가능 항목 구독, 변경사항 수신, 모든 변경사항에 대해 프로그래밍된 조치를 취한다. 3. Dispose Bag: 특정 파일의 메모리 할당이 해제될 때마다 이걸..

iOS/RxSwift 2023.02.18

RxSwift Operator) CombineLatest

CombineLatest 오퍼레이터 어디에다가 쓸 수 있을까? ID, PASSWORD 를 사용자로부터 입력받아서 CombineLatest operator 도움을 받아 하나의 Observable sequence 로 합친다. CombineLatest 2 개의 Observable에서 방출된 시퀀스에서 최신 이벤트를 결합 let observable1 = userNameTextField.rx.text.orEmpty let observable2 = passwordTextField.rx.text.orEmpty let observableCombined = Observable.combineLatest(observable1, observable2) loginBtn.rx.tap .withLatestFrom(observabl..

iOS/RxSwift 2023.02.15

RxSwift 제일 간단한 테이블뷰 만들기

RxSwift 제일 간단한 테이블뷰 만들기 without tableview 기본 메서드 (cellForRowAt, numberOfRowsInSection이 필요없음) import UIKit import RxSwift import RxCocoa class MainViewController: UIViewController, UITableViewDelegate { @IBOutlet weak var tableView: UITableView! //원래 tableViewItems = ["Item 1", "Item 2", "Item 3", "Item 4"]인데 이걸 Observable 시퀀스로 아래와 같이 변환 let tableViewItems = Observable.just(["Item 1", "Item 2", "..

iOS/RxSwift 2023.02.14

RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [시즌2]

RxSwift 란? 비동기로 생기는 결과값을 컴플리션 형태가 아닌 리턴값으로 나타내기 위해 쓰는 유틸리티 (URLSession 이나 Alamofire에서 completion 에 나타나는 코드들이 너무 길어서 깔끔하게 쓰고 싶었던 적이 많았을 것이다) 사용 방법에는 2가지가 있다. 1) create - 비동기로 생기는 데이터를 Observable로 감싸서 처리하는 방법 2) subscribe - Observable로 오는 데이터를 받아서 처리하는 방법 *한 번 생성된 Observable이 disposed 되면 다시 사용 불가. 새로 만들어주어야 함. *위에처럼 RxSwift를 쓰다가 너무 길어져서 이걸 짧게 줄이고 코드를 간결하게 쓰고 싶기에 나온 애들이 SugarAPI. SugarAPI 는 operato..

iOS/RxSwift 2023.01.12

iOS Rxswift Subject

iOS Rxswift Subject Subject란? Observable 및 Observer 의 기능을 같이 하는 것 (구독subscribe도하고, 값도 전달이 가능) Subject : 2가지 기능 = subscribe, next Subject에는 4가지가 있다 1) publish 2) behavior 3) replay 4) async (거의 안씀) 따라서 위의 1,2,3을 제대로 공부할 것 1) vs 2) 초기값의 유무 1) publish - 초기값 X 2) behavior : 초기값이 필수. 구독 전에 가장 최근 값을 같이 emit. ex) placeholder, 테이블뷰 초기값 등 3) replay let replay = ReplaySubject.create(bufferSize: 3) //buffe..