RxSwift
-
RxSwift - Buffer & WindowRxSwift 2021. 10. 6. 19:30
안녕하세요. 그린입니다🟢 이번 포스팅에서는 RxSwift의 Buffer와 Window에 대해 학습해보겠습니다🏃🏻 이전 포스팅에서 Debounce와 Throttle에 대해 학습해볼때 잠깐 Buffer와 Window를 봤었어요! 그런데 타이머를 두는것도 그렇고 비슷한것 같은데 어떤 차이가 있는지 궁금해졌습니다. 이에 요 포스팅에서 두개를 알아보려합니다🧐 Buffer Buffer란? Buffer는 옵저버블에서 방출하는 이벤트를 번들로 한번에 묶어서 묶음으로 방출하게 해줍니다. 아래 그림과 같은 플로우입니다. 그림을 보면 빨간 이벤트가 발생하고 어느정도의 TimeSpan이후 빨/노/초 이벤트에 대해 묶어 방출시켜줍니다. Buffer의 선언 import RxSwift public func buffer( timeS..
-
RxSwfit - Debounce & ThrottleRxSwift 2021. 10. 2. 10:29
안녕하세요. 그린입니다🟢 이번 포스팅에서는 RxSwift에서 사용되는 debounce와 throttle에 대해 학습해보겠습니다🧑🏻💻 자세히 학습하기전 간단하게 debounce와 throttle이 어떤걸 해주는 메서드인가요? Rx에서는 사용자의 액션이나 정의해준것에 따라 observable이 방출됩니다. 그 소리는 만약 동시다발적으로 여러 액션을 취해주면 observable이 따닥따닥 붙어서 방출되겠죠? debounce는 간략히 타이머라고 생각하면 됩니다. 타이머를 두고 일정 시간 후 마지막에 들어온 observable을 방출해줍니다. throttle도 비슷한듯 다른데요. throttle은 이벤트가 방출되면 타이머를 두고 해당 타이머 이후에 이벤트를 또 다시 방출하는 차이입니다. 그러면 이제 본격적으로 ..
-
concat & mergeRxSwift 2021. 8. 16. 14:40
안녕하세요. 그린입니다🟢 이번 포스팅에서는 concat과 merge에 대해 학습해보겠습니다🧑🏻💻 일단 두 단어의 사전적인 의미부터 살펴보면, concat은 concatenate의 약자로 연줄의, 사슬을 잇다 라는 그런 뉘앙스의 뜻을 가지고 있습니다. merge는 합병, 합치다, 융합하다, 어우어리지다 등등의 뉘앙스의 뜻이 있네요! 다들 merge는 깃을 사용하던 뭘하던 다양하게 들어보셨을텐데 concat도 사전적 의미를 보면 동일한 기능을 해줄거라는 느낌이 옵니다. 왜 concat과 merge에 대해 알아보기 시작했는지 풀어보자면, 현재 RxSwift를 공부하면서 여러 퍼블리셔들을 한 동작 즉, 한 스트림에서 동작하게 하고 싶을때 concat과 merge라는 메서드를 호출하여 사용하곤 합니다. 두 기능..
-
RxSwift - CombineLatest & withLatestFromRxSwift 2021. 8. 9. 21:25
안녕하세요 그린입니다🟢 이번 포스팅에서는 CombineLatest와 withLatestFrom에 대해 알아보겠습니다🙋🏻 CombineLatest - 두개의 Observable의 해당하는 각각의 이벤트가 발생할때 최신으로 수신된 이벤트를 묶어 전달 쉽게 코드를 통해서 이해하자면 아래와 같이 정의해볼 수 있다. let owner = Observable.from(["철수", "영희", "준석", "정인"]) let pet = Observable.from(["cat", "dog", "bird", "pig"]) Observable.combineLatest(owner, pet, resultSelector: { (owner: String, pet: String) return (owner, pet) } ) .subsc..
-
RxSwiftRxSwift 2021. 4. 15. 16:07
안녕하세요. 그린입니다🟢 이번 포스팅에서는 RxSwift에 대해 기초적인 부분을 학습해보겠습니다🧑🏻💻 우선 이전 포스팅인 SwiftUI에 이어 RxSwift를 학습하기전 왜 이런것에 대해 배워야하는지 뭐가 중요한지 간략히 알아보겠습니다. 그러기 위해서는 우선 MVVM에 대해 알 필요가 있습니다. MVC / MVP / MVVM 1. MVC - 컨트롤러에서 사용자의 이벤트를 받고 모델에 데이터를 요청 및 변형하여 뷰에 업데이트 해주는 아키텍쳐 패턴 - 각각을 분리하여 의존성을 없애려했는데 뷰와 컨트롤러에서도 소통을 하기에 의존성이 생길 수 있어 재사용성이 낮아짐 2. MVP - MVC와 동일한 개념으로 C대신 P가 들어간것으로 프레젠터로 변경 - 뷰와 프레젠터의 의존성 문제가 결국 나타남 3. MVVM -..