![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/brjSc2/btqFwi8HhVD/Xm6adTJPUb190Un80kepy1/img.png)
Map map 함수는 입력 값을 어떤 함수에 넣어서 원하는 값으로 변환하는 함수입니다. map은 원을 입력 받아서 다이아몬드로 반환하는 것을 볼 수 있습니다. 아래는 마블 다이어그램을 코드로 표현한 것입니다. 입력 import io.reactivex.Observable class MapExample { fun marbleDiagram() { val balls = arrayOf("1", "2", "3", "5") val source = Observable.fromArray(*balls) .map { ball -> "$ball◇" } source.subscribe { data -> println(data) } } } fun main() { val demo = MapExample() demo.marbleDia..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dkE8lW/btqFwjzDB6E/4tvMK18XdjUshwK2NoScxK/img.png)
Subject 클래스처럼 차가운 Observable을 뜨거운 Observable로 변환합니다. Observable을 여러 구독자에게 공유할 수 있으므로 원 데이터 하나를 여러 구독자에게 동시에 전달할 때 사용합니다. 특이한 점은 subscribe를 호출해도 아무 동작이 일어나지 않습니다. 새로 추가된 connect는 호출한 시점부터 subscribe를 호출한 구독자에게 데이터를 발행하기 때문입니다. ConnectableObservable 객체를 생성하려면 먼저 Observable에 publish를 호출해야 합니다. publish는 여러 구독자에게 데이터를 발행하기 위해 connect를 호출하기 전까지 데이터 발행을 유예하는 역할을 합니다. 입력 import io.reactivex.Observable cl..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b0nnD0/btqFve62DLj/vC21gZG9wOMV4SrvdN27KK/img.png)
Subject 차가운 Observable을 뜨거운 Observable로 바꿔 줍니다. Subject 클래스의 특성은 Observable의 속성과 구독자 속성이 모두 있다는 것입니다. Observable처럼 데이터를 발행할 수 있고, 구독자처럼 발행된 데이터를 바로 처리할 수도 있습니다. Subject 클래스에는 AsyncSubject, BehaviorSubject, PublishSubject, ReplaySubject 등이 있습니다. AsyncSubject Observable에서 발행한 마지막 데이터를 얻어올 수 있는 Subject 클래스입니다. 마지막 데이터만 가져오고 이전 데이터는 무시합니다. 지금까지와 다르게 마블 다이어그램의 아래쪽에 있는 구독자의 시간 표시 줄이 여러 개입니다. 처음 구독자가 s..
변수 선언 [ var, dynamic ] void main() { /// int num1 = 1; var num2 = 2; dynamic num3 = 3; } var과 dynamic 둘다 타입을 추론을 하는 방식입니다. 둘다 자료형을 명시 해주지 않아도 됩니다. 기본적으로 var을 사용할 하고, dynamic은 함수와 같이 사용합니다. ( dynamic은 object 느낌 ) 선언을 하지 않으면 기본 값으로 null이 들어갑니다. num num은 int형과 double형 입니다. void main() { num number1 = 1; num number2 = 1.1; } 문자열 [ ' ', " " ] void main() { var str1 = "Flutter"; var str2 = 'Flutter'; ..
Observable에는 차가운 Observable, 뜨거운 Observable이 있습니다. 차가운 Observable Observable을 선언하고 just, fromArray 함수를 호출해도 옵서버가 subscribe를 호출하여 구독하지 않으면 데이터를 발행하지 않습니다. 즉, 게으른 접근 법입니다. 웹 요청, 데이터베이스 쿼리, 파일 읽기 등에 쓰이고, 원하는 URL이나 데이터를 지정하면 그때부터 서버나 데이터베이스 서버에 요청을 하고 결과를 받아옵니다. 뜨거운 Observable 구독자의 존재 여부와 관계없이 데이터를 발행하는 Observable입니다. 즉, 여러 구독자를 고려할 수 있습니다. 마우스 이벤트, 키보드 이벤트, 시스템 이벤트 등이 있고, 온도를 처리하는 앱이라면 최근의 온도 정보만 표..
Maybe 클래스 Single 클래스와 같이 최대 데이터 하나를 가질 수 있지만 데이터 발행 없이 바로 데이터 발생을 완료할 수 있습니다. 즉, Maybe 클래스는 Single 클래스에 onComplete 이벤트가 추가된 형태입니다. Maybe 클래스를 통해서 생성 할 수 있지만 보통 Observable 연산자를 통해 생성합니다. Maybe 객체를 생성할 수 있는 연산자는 elementAt(), firstElement(), flatMapMaybe(), lastElement(), reduce(), singleElement() 등이 있습니다.