본문 바로가기
Android/Android Development

Android Room - RxKotlin과 함께 쓰는 방법

by 2Plus 2020. 6. 10.

Photo by Ярослав Алексеенко on Unsplash

 지난 포스팅들에서 Room에 대해 배워보고 Coroutine, RxKotlin, LiveData와 함께 사용할 수 있다는 것을 알았다. 최근에 올렸던 Coroutine과 함께 사용하는 방법에 이어서 RxKotlin과 사용하기 위해서 어떻게 해야 하는지, 어떻게 사용하는지에 대해 이번 포스팅에 대해서 알아본다.

 

 

Dependency

 Coroutine의 경우와 마찬가지로, Room을 RxKotlin과 함께 사용하기 위해서도 dependency를 추가해줘야 한다. 먼저, 모듈의 build.gradle 파일에 Kotlin annotation plugin을 추가해준다.

 

 

 build.gradle 파일의 상단 부분에 위와 같이 작성하여 플러그인을 추가한다.

 

 

 dependencies block에는 위의 세 줄을 추가해주기만 하면 된다. 버전은 사용 시에 알맞은 것을 사용하면 된다. 여기서는 2.2.3 버전으로 진행해본다.

 

 

DAO

 

 DAO 선언시에는 위와 같이 하면 된다.

 Room을 Coroutine과 함께 사용했을 때를 생각해보자(Coroutine 포스팅을 안 봤다면 이 문단을 패스해도 무방). DAO 선언 시 메소드 앞에 Coroutine의 suspend function 키워드인 suspend만 붙여주면 알아서 suspend function으로 DAO가 만들어졌다.

 Room과 RxKotlin을 함께 사용하는 경우도 마찬가지이다. DB에서 뭔가를 읽어올 때, 반환 타입을 Single, Observable 등의 Rx로 지정해주기만 하면 구현은 알아서 된다. Room을 이용해서 DB 작업을 진행할 때, 받는 부분에서 Rx로 사용하고 싶다면 위와 같이 DAO 선언 부분만 지정해주고, 실제로 사용하는 곳에서 RxKotlin을 활용하여 사용하면 된다.

반응형

댓글