Android Studio에서 순수 RxJava 코딩 하기
RxJava를 학습하기 위해 Java 개발 환경이 필요한데 이를 위해서는 IntelliJ IDEA Community 같은 툴이 필요하다. 하지만 이미 안드로이드 개발을 위해 Android Studio가 설치되어있다면 굳이 다른 툴을 설치할 필요 없이 Android Studio를 활용하면 된다. 그 방법에 대해 알아보자.
1. 새 안드로이드 스튜디오 프로젝트 생성
"+ Create New Project" 선택
2. 프로젝트 템플릿 선택
'No Activity' 선택 -> Next 버튼 클릭
3. 프로젝트 설정
설정값들을 아래와 같이 채운 후 'Finish' 버튼을 클릭한다. 여기서 설정한 값들은 예제이니 원하는 값들을 사용하면 된다.
Name : rxkotlin
Package name : com.abc.rxkotlin
Save location : D:\temp\rxkotlin
Language : Kotlin
Minimum SDK : API 28 (Android P)
4. 코틀린 파일 추가
app 모듈에 생성된 package에서 마우스 우클릭
-> New
-> Kotlin Class/File
-> "main" 입력
-> File 더블클릭
-> main.kt 파일이 생성됨
5. main.kt에 main 메서드 작성
package com.abc.rxkotlin
fun main() {
println("Hello rxkotlin")
}
6. app 모듈에 대한 설정 수정
상단 툴바에 있는 app 모듈 드롭다운 메뉴에서 "Edit Configurations..." 선택
-> Run/Debug Configurations 창이 나옴
Run/Debug Configurations 창의 좌측 상단에 있는 '+' 버튼을 클릭하면 드롭다운 메뉴가 나오는데 여기에서 "Kotlin"을 선택한다. 그러면 Kotlin configuration이 unnamed 상태로 추가된다. 몇몇 필드를 아래와 같이 채운다. Main class의 MainKt를 찾지 못하는 경고가 나오지만 무시하고 'OK' 버튼을 클릭한다.
Name : com.abc.rxkotlin.MainKt
Main class : com.abc.rxkotlin.MainKt
Use classpath of module : rxkotlin.app
7. app 모듈 gradle에 kotlin android extensions와 RxJava/RxKotlin 의존성 추가
plugins에 'kotlin-android-extensions' 추가한다.
RxJava2와 RxKotlin2의 최신 버전을 확인하여 의존성에 추가한다.
gradle 파일이 수정되었으므로 프로젝트를 다시 싱크 한다.
plugins {
...
id 'kotlin-android-extensions'
}
...
dependencies {
implementation "io.reactivex.rxjava2:rxjava:2.2.21"
implementation "io.reactivex.rxjava2:rxkotlin:2.4.0"
...
}
8. RxJava 테스트 코드 작성
main.kt에 기존에 작성한 코드를 삭제하고 RxJava 테스트 코드를 작성하여 설정이 정상적으로 되었는지 확인한다.
package com.abc.rxkotlin
import io.reactivex.rxkotlin.subscribeBy
import io.reactivex.rxkotlin.toObservable
fun main(argc: Array<String>) {
val list = listOf("Alpha", "Beta", "Gamma", "Delta", "Epsilon")
list.toObservable()
.filter { it.length >= 5 }
.subscribeBy(
onNext = { println(it) },
onError = { it.printStackTrace() },
onComplete = { println("Done!") }
)
}
9. 테스트 결과 확인
Run configuration에 'MainKt'이 선택되어있는지 확인하고 [Shift + F10]로 프로젝트를 실행시켰을 때 아래와 같이 결과가 나오면 정상적으로 환경이 구성된 것이다. 이제부터 이 환경에서 RxJava를 테스트할 수 있다.
"C:\Program Files\Android\Android Studio\jre\bin\java.exe" ...
Alpha
Gamma
Delta
Epsilon
Done!
Process finished with exit code 0
github : monotics/learning-rxjava: Repository for learning RxJava (github.com)