WooKoo Blog

물과 같이

개발/개발

RxSwift: Chapter - 1[Hello RxSwift!]

WooKoo 2020. 10. 4. 16:44

 

https://store.raywenderlich.com/products/rxswift

 

RxSwift: Reactive Programming with Swift

 

Leverage the power of RxSwift in your reactive apps!

This book is for iOS developers who already feel comfortable with iOS and Swift, and want to dive deep into development with RxSwift.

Start with an introduction to the reactive program

www.raywenderlich.com

 

해당 책을 토대로 공부하고 정리한 내용들입니다.

오역과 잘못된 정보가 포함되어있을 수 있습니다.


Rxswift의 정의

RX 라이브러리 옵저버블 시퀀스와 함수 스타일의 오퍼레이터를 이용하여 비동기적이고 이벤트 기반의 코드를 작성하기위한 라이브러리다.

 

  

이게 뭔말이래...?ㅋㅋㅋㅋ공부하다보면 이해가 되겠지~

 

 

RxSwift는 나의 코드가 새로운 데이터에 반응해서 순차적으로 격리된 방식?을 처리함으로 비동기 프로그램을 할 수 있다네요.

(옵저버블 맵을 보면 순차적으로 옵저브 마블들이 있죠 그걸 뜻하는 걸 같네요)

 

iOS는 다양한 작업들을 동시에 할 수 있는데요

예를 들자면 버튼을 탭 했을 시의 응답

키보드로 텍스트를 입력 시 자동입력?

큰 이미지의 파일들을 다운받고

데이터를 저장하고

오디오를 재생시키고 등등등...

여러가지 작업을 한번에 할 수 있어요.

 

모든 것들은 동시에 일어나는 것처럼 보이지만 음악을 재생하고 버튼을 탭하면 음악이 끊기지 않는 것.

뭐 그러니까 비동기적이라는 것을 설명해주고 있고

iOS는 모든 API 종류들이 서로 다른 스레스와 CPU를 제공해준다고합니다.

 

병렬 코드 처리는 조각조각되어있어 어려워서 동일한 작업 할 때 더욱 복잡해진다는 말인 것 같아요.

 

Cocoa 와 UIKit에서 비동기 프로그래밍을 할 수 있는 방법들은 아래와 같은 것들이 있어요.

(나중에 좀 더 공부해봐야지)

 

1. NotificationCenter : 흥미로운 이벤트가 발생 할 때 코드의 조각이 실행된다. 디바이스의 성향? 목표를 바꾸거나 소프트웨어 키보드가 보여졌다 숨겼다하는 것 같이.

2. The delegatePattern: 임의의 시간에 클래스와 API에서 실행될 메소드를 정의한다. 예시로 어플리케이션에 정의한 델리게이트가 새로운 노티피케이션 에 도착했을 때 이 코드가 언제 실행될 것 인지 또는 실행될 횟수를 알 수 없다.

3. Grand Central Dispatch: 작업의 조각들의 실행의 추상화를 돕는다. Serial queue에서 순차적으로 실행될 코드를 예약할 수 있거나 다른 큐와 다른 우선 순위 등 다수의 업무를 동시에 실행 할 수 있다.

4. Closures: 클래스 간에 전달 할 수 있는 분리된 코드 조각을 만들어 클래스가 몇번 실행하고 어떤 컨텍스트에서 실행할지 결정할 수 있다.

 

 


2020/10/04 - [iOS/RxSwift] - RxSwift: Chapter - 1[Hello RxSwift!]

2020/10/03 - [iOS] - RxSwift: Chapter - 2[Observables]