gdg korea android - rxjava에서 쓸만한 팁들 모아보기

7
RxJava에서 쓸만한 팁들 모아보기 프렌트립 이하제

Upload: haze-lee

Post on 16-Apr-2017

1.523 views

Category:

Software


4 download

TRANSCRIPT

Page 1: GDG Korea Android - RxJava에서 쓸만한 팁들 모아보기

RxJava에서 쓸만한 팁들 모아보기프렌트립 이하제

Page 2: GDG Korea Android - RxJava에서 쓸만한 팁들 모아보기

제일 기본적인 안드로이드 RxJava에서의 메모리 관리생명 주기 안에서 발생한 Subscription들을

CompositeSubscription에 몰아서 onDestroy에서 clear() 시킨다.

Example 1 - 1.

Page 3: GDG Korea Android - RxJava에서 쓸만한 팁들 모아보기

좀 더 안드로이드 생명주기에서 맞추려면?Trello의 RxLifecycle을 사용(RxAndroid 1.0부터는 AppObservable을 대체함)

compose에서 바인딩해서 라이브러리에게 맡길 수 있음.

Example 1 - 2.

Page 4: GDG Korea Android - RxJava에서 쓸만한 팁들 모아보기

좀 더 근본적인 방법은 없을까?Subscriber의 Decorator를 통해 WeakReference로 감싸서

Observable과 Subscriber간의 관계를 약하게 만들어봄.

결과 : “WeakReference가 참조하고 있는 Subscriber가 null이 됨”

Example 1 - 3.

Page 5: GDG Korea Android - RxJava에서 쓸만한 팁들 모아보기

RxJava에서 편하게 디버깅하는 방법frodo를 사용하면 어노테이션을 달아서 편하게 로그를 볼 수 있다.

rxjava-debug로 Hook을 거는 방법도 있다.

Page 6: GDG Korea Android - RxJava에서 쓸만한 팁들 모아보기

좀 더 좋은 방법에 대한 고찰이렇게 쓰는게 좋은 것이 맞을지에 대한 의견을 공유해봅시다.

+1. 이것보다 더 좋은 방법이 있을까요?

Page 7: GDG Korea Android - RxJava에서 쓸만한 팁들 모아보기

References.

• Airbnb에서 적용한 RxJava (링크 / 영어)• RxAndroid 1.0부터의 라이크사이클 바인딩 (링크 / 일본어)• RxJava에서 Memory Leak을 예방하는 방법 (링크 / 영어)• Debugging RxJava in Android: Frodo (링크 / 영어)• GitHub trello/RxLifecycle• GitHub android10/frodo