Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

혼자 있고 싶네요. 모두 나가주세요.

002. RxAndroid 준비하기 본문

타닥타닥/RxJava

002. RxAndroid 준비하기

아무것도몰라양 2017. 7. 5. 15:19

RxAndroid란?

안드로이드에서 RxJava를 사용할 수 있도록 편리한 툴을 제공

용어 정리

  • Subject == Observable : Event를 발생시키는 관찰 대상
  • Observer == Subscriber : Observable을 보고 있다가 Event가 발생하면 처리하는 관찰자
첨에 Observer, Observable 구분하기가 빡시다. 눈을 일을 하는데 머리는 일을 하질 않는다.

준비하기


compile 'io.reactivex:rxandroid:0.24.0'

이 한줄을 app 단위 Gradle에 추가하여 준다.

Hello, RxJava?

일단 거두절미하고 다짜고짜 출력해 보도록 하자. 아직 RxJava랑 친하지 않으니, 'Hello, RxJava!' 처럼 공격적인 느낌표보다는 조심스러운 물음표를 사용하도록 하자.

 public class MainActivity extends AppCompatActivity {
     private final String TAG = MainActivity.class.getSimpleName();
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
 
         //just : subscribe(구독) 당하는 순간 한번만 실행
         Observable<String> observable = Observable.just("Hello, RxJava?");
         Observable<String> observable2 = Observable.just("개미", "똥구멍");
 
         //observable을 subscribe 할 수 있는 observer
         Observer<String> observer = new Observer<String>() {
             @Override
             public void onCompleted() {
                 Log.d(TAG,"onCompleted");
             }
 
             @Override
             public void onError(Throwable e) {
                 Log.d(TAG,"onError");
             }
 
             @Override
             public void onNext(String s) {
                 Log.d(TAG,"onNext");
                 System.out.println(s);
             }
         };
 
         //subscribe
         observable.subscribe(observer);
         observable2.subscribe(observer);
     }
 }


안드로이드 모니터를 통해 확인한 결과는 다음과 같았다.


D/MainActivity: onNext

I/System.out: Hello, RxJava?

D/MainActivity: onCompleted

D/MainActivity: onNext

I/System.out: 개미

D/MainActivity: onNext

I/System.out: 똥구멍

D/MainActivity: onCompleted


just라는 약속어를 사용하였기 때문에 subscribe를 한 뒤, observable에 어떠한 일도 생기지 않았지만 곧바로 observer가 일을 하는 모습을 확인 할 수 있었다.


observable2를 구독한 결과를 보니 onNext()는 모든 작업을 처리할 때 까지 순차적으로 불리고, onCompleted()는 맨 마지막에 성공적으로 처리가 되었을 경우 한 번만 실행 된다는 것을 확인할 수 있다.


Hello Rxjava를 출력해보니 마음 깊은 곳에서 근자감이 솟아 오르는 것 같다. 필소굿

'타닥타닥 > RxJava' 카테고리의 다른 글

006. RxJAVA 연산자 :: Observable 생성  (0) 2017.07.12
005. Connectable Observable  (0) 2017.07.05
004. RxJava Subject란?  (0) 2017.07.05
003. Observable : Hot, Cold?  (0) 2017.07.05
001. Reactive Programming/RxJava 란?  (0) 2017.07.05
Comments