안드로이드에서 서버와 통신을 할 때, OKHttp 또는 Retrofit2 라이브러리를 많이 사용합니다. 하지만 매번 Retrofit.Builder()
를 사용하여 Retrofit 객체를 사용하는 것보다 프로세스 생성과 함께 메모리에 상시 상주하는 Retrofit object
객체를 생성하여 Retrofit을 사용하는 곳에서 Singleton 인스턴스를 참조하는 것이 메모리 효율 및 재사용성에서 우수하다고 할 수 있습니다.
object RetrofitClient {
private var retrofit: Retrofit? = null
fun getRetrofit(): Retrofit? {
return retrofit ?: Retrofit.Builder()
.baseUrl(BuildConfig.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(/* OKHTTP INTERCEPTER, ETC (can remove this invocation) */)
.build()
}
}
RetrofitClient object 클래스입니다. object 클래스를 사용하여 객체 생성 없이 접근할 수 있습니다.