gdg korea android - rxjava에서 쓸만한 팁들 모아보기
TRANSCRIPT
RxJava에서 쓸만한 팁들 모아보기프렌트립 이하제
제일 기본적인 안드로이드 RxJava에서의 메모리 관리생명 주기 안에서 발생한 Subscription들을
CompositeSubscription에 몰아서 onDestroy에서 clear() 시킨다.
Example 1 - 1.
좀 더 안드로이드 생명주기에서 맞추려면?Trello의 RxLifecycle을 사용(RxAndroid 1.0부터는 AppObservable을 대체함)
compose에서 바인딩해서 라이브러리에게 맡길 수 있음.
Example 1 - 2.
좀 더 근본적인 방법은 없을까?Subscriber의 Decorator를 통해 WeakReference로 감싸서
Observable과 Subscriber간의 관계를 약하게 만들어봄.
결과 : “WeakReference가 참조하고 있는 Subscriber가 null이 됨”
Example 1 - 3.
RxJava에서 편하게 디버깅하는 방법frodo를 사용하면 어노테이션을 달아서 편하게 로그를 볼 수 있다.
rxjava-debug로 Hook을 거는 방법도 있다.
좀 더 좋은 방법에 대한 고찰이렇게 쓰는게 좋은 것이 맞을지에 대한 의견을 공유해봅시다.
+1. 이것보다 더 좋은 방법이 있을까요?
References.
• Airbnb에서 적용한 RxJava (링크 / 영어)• RxAndroid 1.0부터의 라이크사이클 바인딩 (링크 / 일본어)• RxJava에서 Memory Leak을 예방하는 방법 (링크 / 영어)• Debugging RxJava in Android: Frodo (링크 / 영어)• GitHub trello/RxLifecycle• GitHub android10/frodo