Reactive Programming 옵져버 패턴을 이용하여 구독자에게 변경사항을 알려주는 programming 기법 입니다.
여기서 RxKotlin에 대해 알아 보겠습니다.
Reactive Programming 란?
- 사용하는 이유?
- 메인 쓰레드가 아닌 별도 쓰레드를 생성하여 서버 통신이나 DB 데이터를 가져올때 사용하며, AsyncTask는 공식적으로 deprecated 됨
- 명령형 프로그래밍과 차이점?
- 명령형은 순서대로 실행
- 반응형은 데이터의 흐름을 먼저 정의하고 데이터가 변경 되었을때 연관되는 함수나 메소드가 업데이트 되는 방식
- RxJava, RxAndroid, RxKotlin 차이점?
- RxJava는 Java기반이지만 Kotlin에서도 사용 가능
- RxKotlin은 RxJava기반이며 Kotlin만 지원
- RxAndroid는 RxJava기반이며 쉽고 빠르게 구현가능한 구성요소를 지원
RxKotlin 구축
- 종속성 설정
implementation("io.reactivex.rxjava2:rxkotlin:3.0.1") - 최신버전 확인 https://mvnrepository.com/artifact/io.reactivex.rxjava2
코드
- 코드 구성
간단한 앱을 만들어 봤습니다.
button.setOnClickListener {
button.isClickable = false
Observable
.interval(0, 1, TimeUnit.SECONDS) // 1초에 1씩 증가
.subscribe {
runOnUiThread {
button.text = it.toString()
}
}
}