https://www.youtube.com/shorts/c6aWSiaepAM
요 숏츠를 보고 깜짝 놀랐다!
나는 생각도 못한 방법이었는데...
아래와 같이 레트로핏을 사용하면서 개발용, 배포용 base url을 구분지어 사용해야 한다면
private const val IS_PRODUCTION = false
val retrofit by lazy {
Retrofit.Builder()
.baseUrl(
if(IS_PRODUCTION){
"https://app.com"
}else{
"https://test.app.com"
}
).build()
}
직접 코드로 분기 처리를 할 필요없이 build.gradle의 buildTypes를 사용하면 된다고 한다.
// build.gradle.kts (app)
buildTypes {
debug {
buildConfigField("String", "BASE_URL", "\"https://test.app.com\"")
}
release {
buildConfigField("String", "BASE_URL", "\"https://app.com\"")
}
}
아래와 같이 수정해주면 된다!
val retrofit by lazy {
Retrofit.Builder()
.baseUrl(BuildConfig.BASE_URL)
.build()
}
부끄럽지만 요 방법을 몰랐다면 무식하게 하드코딩 했을 것이다.