꾸준히 안타치기

곰튀김님- Rxswift 스터디 본문

iOS/Rxswift

곰튀김님- Rxswift 스터디

글자줍기 2022. 7. 15. 17:39
반응형

RxSwift 4시간에 끝내기 (종합편)  곰튀김님강의 🎅🏼

https://github.com/iamchiwon/RxSwift_In_4_Hours

https://reactivex.io/documentation/ko/operators.html

 

ReactiveX - Operators

연산자 소개 ReactiveX를 지원하는 언어 별 구현체들은 다양한 연산자들을 제공하는데, 이 중에는 공통적으로 제공되는 연산자도 있지만 반대로 특정 구현체에서만 제공하는 연산자들도 존재한다

reactivex.io

[1교시] 개념잡기 - RxSwift를 사용한 비동기 프로그래밍

  1. Observable
    • Observable create
    • subscribe 로 데이터 사용
    • Disposable 로 작업 취소
  2. Sugar API

PromiseKit - 라이브러리 (동기, 비동기 쉽게 해줌)/ 제일 유명(자바스크립트에서 많이 사용됨)

비동기를 간결하게 해주는 유틸리티다!

용도가 같으나 Rx에는 뭔가가 하나 더있다. 그건 오퍼레이터! 다운로드 취소가능!

 

중요도

Observable - 최고중요

Operators - 더 잘쓸수있다.

Scheduler - 여러군데활용

Subject - 뭔가 만들수있음

SIngle 순..

https://reactivex.io/documentation/observable.html

 

ReactiveX - Observable

Observable In ReactiveX an observer subscribes to an Observable. Then that observer reacts to whatever item or sequence of items the Observable emits. This pattern facilitates concurrent operations because it does not need to block while waiting for the Ob

reactivex.io

디스패치큐 어싱크 방법 

promisseKit - 비동기 라이브러리 (디스패치큐 어싱크 방법 을 더 편하게 쓰기위해 나옴..)

✅ 더 좋은것! Rxswift - 어싱크한 작업을 간결하게 쓰기 위해서 + Operator가 있다.

✅ 취소하기 ( Disposable하면 취소가 가능하다! ), 뒤로가기 로딩 취소가능하다!

사용하지 않았다면, operationQue로 확인해야함..

 

✅ DisposeBag을 사용하면, 담긴 모든작업이 취소가 됨 (dispose들을 담는 가방이다.)

새로만들어서 담는것  = 모두 취소하는것 

방법1

방법2 

변수를 생성하지 않고, 밑에다가 바로 .disposed(by: disposeBag)을 바로 해줌


37분~

⭐️ step1

✅ just - 에 넣으면 그대로 나옴

✅ from - array요소를 한줄로 가져옴

✅ map - 받아서 바꿔치기해서 내려보냄

✅ map2  - 받아서 바꿔치기해서 내려보냄

✅ filter  - 검사해서 조건이 True일때만 내려보내줌

✅ just, from, map, filter ... 예제 ( 이미지 받아오기 )

https://reactivex.io/documentation/ko/operators.html ⭐️⭐️⭐️⭐️⭐️ 필요할때 찾아쓰기!!!

 

ReactiveX - Operators

연산자 소개 ReactiveX를 지원하는 언어 별 구현체들은 다양한 연산자들을 제공하는데, 이 중에는 공통적으로 제공되는 연산자도 있지만 반대로 특정 구현체에서만 제공하는 연산자들도 존재한다

reactivex.io

Observable 연산자 결정트리

https://reactivex.io/documentation/ko/operators.html#tree

 

ReactiveX - Operators

연산자 소개 ReactiveX를 지원하는 언어 별 구현체들은 다양한 연산자들을 제공하는데, 이 중에는 공통적으로 제공되는 연산자도 있지만 반대로 특정 구현체에서만 제공하는 연산자들도 존재한다

reactivex.io

마블로 이해하기 - 설명없으면  JAVA 1.대를 누르고 비슷한거 찾아서 이해하기 

https://rxmarbles.com/

 

RxMarbles: Interactive diagrams of Rx Observables

 

rxmarbles.com

넥스트, 컴플릿, 에러 처리하는 법만 알면된다!

 

⭐️ step2

✅ subscribe - 오퍼레이터 거친것 데이터를 사용하겠다.

실행만시키고 끝. 결과는 알바아닐때 , 받듣말든 상관없을때 

결과를 받아서 처리해야할때 , 기본적인 이벤트 타입 3가지 케이스가 있다.

subscribe만 return타입이 disposed(by: disposeBag)이다.

 

에러가 나오는상황 / 싱글이니까 하나만 들어와야되는데 여러개가 들어와서 에러가남,  completed안됨

필요한 부분만 쓸수 있다.

1:00 ~
1:07 ~

이부분의 클로저는 

이것과 같다.

함수로 빼서 이렇게 사용도 가능.


✅  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에 대한 이벤트도 비동기로 처리할 수 있다.

1:30 ~

Rxcocoa사용하기

이메일형식이 아니면, false

b(불린)값이 true이면 self.idValidView.isHidden = b (빨간점 사라짐)

1:36 ~

✅ CombineLatest  ⭐️⭐️⭐️⭐️⭐️

결과1 + 결과 2  = 둘다 결과가  true일때만 내려보내주기 / 이메일, 패스워드값이 true일때만 눌리게

이것외에 zip, merge 등이 있음...

전체소스

 전체소스 -> 리펙토링하기 / 1:45~ ⭐️⭐️⭐️⭐️⭐️

 

 

 

반응형

'iOS > Rxswift' 카테고리의 다른 글

iOS swift, mvvm rxswift 예제.. 작성중..  (0) 2023.03.05
Comments