[Android] Android Singleton RetrofitClient로 Retrofit 객체 생성 최소화하기

junsuPark·2022년 12월 2일
0

Android

목록 보기
10/12

Retrofit with Singleton?

안드로이드에서 서버와 통신을 할 때, OKHttp 또는 Retrofit2 라이브러리를 많이 사용합니다. 하지만 매번 Retrofit.Builder()를 사용하여 Retrofit 객체를 사용하는 것보다 프로세스 생성과 함께 메모리에 상시 상주하는 Retrofit object 객체를 생성하여 Retrofit을 사용하는 곳에서 Singleton 인스턴스를 참조하는 것이 메모리 효율 및 재사용성에서 우수하다고 할 수 있습니다.


RetrofitClient

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 클래스를 사용하여 객체 생성 없이 접근할 수 있습니다.

0개의 댓글