[Android/Kotlin] Kotlin KTX를 이용한 SharedPreferences 활용하기

곽의진·2023년 10월 17일
0

Android

목록 보기
12/15

Kotlin KTX를 이용한 SharedPreferences 활용하기

🚆 KTX란?

Kotlin Android Extensions의 약자로 Android API에 대한 Kotlin 확장을 제공하는 라이브러리입니다.

📝 SharedPreferences 란?

Android에서는 사용자의 설정이나 앱의 내부 상태를 (key, value) 형식으로 저장하는 방법 중 하나로 SharedPreferences를 사용합니다.

Kotlin KTX 기본 설정

먼저, SharedPreferences를 KTX와 함께 사용하려면 의존성을 추가해야 합니다.

// build.gradle(app)
dependencies {
	implementation "androidx.core:core-ktx:x.y.z" // 버전은 프로젝트 상황에 맞게~!!
}

사용 방법

기본 SharedPreferences 생성

val sharedPreferences = context.getSharedPreferences("my_prefs", Context.MODE_PRIVATE)

KTX를 사용하면 아래와 같이 간단하게 가져올 수 있습니다.

val sharedPreferences = context.defaultSharedPreferences

값 저장하기

기존 방법:

with(sharedPreferences.edit()) {
    putString("key", "value")
    apply()
}

KTX를 사용한 방법:

sharedPreferences.edit {
    putString("key", "value")
}

Q: ?? 근데 저장은 어떻게 하나요?? apply하고 commit이 보이지 않는데요??

A: KTX 확장 함수는 내부적으로 apply()를 호출하므로 별도로 호출할 필요가 없습니다.

@SuppressLint("ApplySharedPref")
public inline fun SharedPreferences.edit(
    commit: Boolean = false,
    action: SharedPreferences.Editor.() -> Unit
) {
    val editor = edit()
    action(editor)
    if (commit) {
        editor.commit()
    } else {
        editor.apply()
    }
}
💡 commit을 호출하기 위해서는 commit 파라메터를 true로 설정해주시면 됩니다.

apply와 commit의 차이를 아시는 분께 저와 점심을 드실 수 있는 기회를 드리겠습니다. 물론 사드리는건 아닙니다 하핳

값 가져오기

val value = sharedPreferences.getString("key", "default_value")

KTX를 사용하면 위 코드와 동일하게 동작합니다. 이 부분은 KTX 확장이 없어도 동일하게 사용됩니다.

값 삭제하기

기존 방법:

with(sharedPreferences.edit()) {
    remove("key")
    apply()
}

KTX를 사용한 방법:

sharedPreferences.edit {
    remove("key")
}

✅ 결론

Kotlin KTX는 Android의 여러 API에 대한 편리한 확장을 제공합니다. SharedPreferences 도 이러한 KTX를 활용하여 코드를 더 간결하고 읽기 쉽게 만들어봐요!!

특히 기존 코드와 KTX를 활용한 코드를 비교하면서 차이점을 확인하면 좋겠습니다~!!! 다들 화이팅

profile
Android Developer

0개의 댓글