꾸준히 안타치기
곰튀김님- Rxswift 스터디 본문
RxSwift 4시간에 끝내기 (종합편) 곰튀김님강의 🎅🏼
https://github.com/iamchiwon/RxSwift_In_4_Hours
https://reactivex.io/documentation/ko/operators.html
[1교시] 개념잡기 - RxSwift를 사용한 비동기 프로그래밍
- Observable
- Observable create
- subscribe 로 데이터 사용
- Disposable 로 작업 취소
- Sugar API
- 간단한 생성 : just, from
- 필터링 : filter, take
- 데이터 변형 : map, flatMap
- 그 외 : A Decision Tree of Observable Operators
- Marble Diagram
PromiseKit - 라이브러리 (동기, 비동기 쉽게 해줌)/ 제일 유명(자바스크립트에서 많이 사용됨)
→ 비동기를 간결하게 해주는 유틸리티다!
→ 용도가 같으나 Rx에는 뭔가가 하나 더있다. 그건 오퍼레이터! 다운로드 취소가능!
중요도
Observable - 최고중요
Operators - 더 잘쓸수있다.
Scheduler - 여러군데활용
Subject - 뭔가 만들수있음
SIngle 순..
https://reactivex.io/documentation/observable.html
디스패치큐 어싱크 방법
promisseKit - 비동기 라이브러리 (디스패치큐 어싱크 방법 을 더 편하게 쓰기위해 나옴..)
✅ 더 좋은것! Rxswift - 어싱크한 작업을 간결하게 쓰기 위해서 + Operator가 있다.
✅ 취소하기 ( Disposable하면 취소가 가능하다! ), 뒤로가기 로딩 취소가능하다!
사용하지 않았다면, operationQue로 확인해야함..
✅ DisposeBag을 사용하면, 담긴 모든작업이 취소가 됨 (dispose들을 담는 가방이다.)
새로만들어서 담는것 = 모두 취소하는것
방법1
방법2
변수를 생성하지 않고, 밑에다가 바로 .disposed(by: disposeBag)을 바로 해줌
⭐️ step1
✅ just - 에 넣으면 그대로 나옴
✅ from - array요소를 한줄로 가져옴
✅ map - 받아서 바꿔치기해서 내려보냄
✅ map2 - 받아서 바꿔치기해서 내려보냄
✅ filter - 검사해서 조건이 True일때만 내려보내줌
✅ just, from, map, filter ... 예제 ( 이미지 받아오기 )
https://reactivex.io/documentation/ko/operators.html ⭐️⭐️⭐️⭐️⭐️ 필요할때 찾아쓰기!!!
Observable 연산자 결정트리
https://reactivex.io/documentation/ko/operators.html#tree
마블로 이해하기 - 설명없으면 JAVA 1.대를 누르고 비슷한거 찾아서 이해하기
넥스트, 컴플릿, 에러 처리하는 법만 알면된다!
⭐️ step2
✅ subscribe - 오퍼레이터 거친것 데이터를 사용하겠다.
실행만시키고 끝. 결과는 알바아닐때 , 받듣말든 상관없을때
결과를 받아서 처리해야할때 , 기본적인 이벤트 타입 3가지 케이스가 있다.
subscribe만 return타입이 disposed(by: disposeBag)이다.
에러가 나오는상황 / 싱글이니까 하나만 들어와야되는데 여러개가 들어와서 에러가남, completed안됨
필요한 부분만 쓸수 있다.
이부분의 클로저는
이것과 같다.
함수로 빼서 이렇게 사용도 가능.
✅ scheduler 1:10 ~ 동시에실행, 메인쓰레드가 아닌곳에서 (1.observeOn ,2.subscribeOn)
1.observeOn 하면
observeOn 하면, observeOn(MainScheduler.instance) 다음줄부터 영향 -
밑에 이부분이 메인쓰레드에서 실행됨
✅ 2.subscribeOn 이거는 위치가 어디여도 상관없음 1:15 ~
✅ sideEffect 1:17 ~ 함수밖 외부에 영향을 주는 것
사이드이펙트를 허용해주는 곳, subscriebe와 do
.do
✅ RxCocoa
⭐️ step3 1:20 ~ ⭐️⭐️⭐️⭐️⭐️
델리게이트로 연결해서 사용했던부분을 , Rxswift로 바꿔서 써보기
UI에 대한 이벤트도 비동기로 처리할 수 있다.
Rxcocoa사용하기
이메일형식이 아니면, false
b(불린)값이 true이면 self.idValidView.isHidden = b (빨간점 사라짐)
✅ CombineLatest ⭐️⭐️⭐️⭐️⭐️
결과1 + 결과 2 = 둘다 결과가 true일때만 내려보내주기 / 이메일, 패스워드값이 true일때만 눌리게
이것외에 zip, merge 등이 있음...
전체소스
✅ 전체소스 -> 리펙토링하기 / 1:45~ ⭐️⭐️⭐️⭐️⭐️
'iOS > Rxswift' 카테고리의 다른 글
iOS swift, mvvm rxswift 예제.. 작성중.. (0) | 2023.03.05 |
---|