iOS/RxSwift

iOS(RxSwift) Observable 개념과 예시

crazydeer 2022. 8. 29. 08:00
반응형

지난 글에서 RxSwift를 설치하고 프로젝트 환경을 설정해봤다.

 

iOS(RxSwift) Install RxSwift using CocoaPods

지난 글에 이어서 RxSwift를 Install 해본다. iOS(Swift) Reactive Programming (RxSwift) 란? iOS(Swift) Functional Programming(함수형 프로그램) 이란? Mastering RxSwift for iOS Reactive Programming for D..

crazydeer.tistory.com

 

Observable 이란❓

Sequence 개념을 가진 RxSwift 프레임워크의 심장이다.

Observable은 기본적으로 값을 가지지 않을 수 있다.

 

Marble 이라는 데이터의 흐름을 도식화한 그림이 있다.

좌우로 뻗은 선과 그 안에 구슬들이 자리하며 순서대로 흐른다.

데이터가 들어오는 시점은 정확하지 않고 중요하지 않다.

왜냐하면 우리 애플리케이션에서 사용자가 특정 버튼을 탭했다고 생각해보자.

그 탭하는 시점에 구슬이 들어오는 것이라고 생각하면 된다.

아래 이미지와 함께 이해해본다.

 

marble example

 

구슬 두개가 지나고 세로 막대기로 막히는 지점이 완료된 지점이다.

다른 마블을 보면 X 로 막힌 것이 있는데 이건 에러가 난 지점을 말한다.

 

이번엔 지난번에 만든 RxSwift Xcode 프로젝트에서

Playground를 하나 만들어서 연습해본다.

 

 

이런 식으로 아무 위치에 빈 playgound를 만들고 HelloRxSwift 폴더를 우클릭하고 추가해주면 된다.

 

이대로 실행해봐도 아무런 일이 일어나지 않는다.

단순히 데이터 스트림(Observable)만 생성했을 뿐 구독(Subscrbe)하지 않았기 때문이다.

 

또 다른 Observable을 만들어본다.

Observable and just, of, from

 

  • observable2observable3of 키워드를 사용하여 데이터 스트림에 Array를 보낼 수 있다. 우리가 흔히 아는 Array처럼 데이터를 하나 씩 순차적으로 보낼 수도 있고 Array 자체를 배열처럼 보내기도 한다. 지금은 정확히 이해가 안가지만 넘어가보도록 한다.
  • observable4from 키워드를 사용해서 배열을 만들었는데 observable2와 같은 형태를 갖는다.

이들은 미묘한 차이를 가지고 있으면 추후에 익숙해지면서 이해해보도록 한다.

 

다음 글에서는 이 ObservableSubsribe하는 것에 대해 알아볼 것이다.

 

Reference

 

Mastering RxSwift for iOS Reactive Programming for Developers

Reactive Programming Using Swift Programming Language

www.udemy.com

 

반응형