android:datastore
datastore
개요
Android에서 설정 등을 기록하고 불러오는 기능을 말한다. 과거에 shared preference라는 이름으로 제공하던 api가
현재는 Datastore라는 이름으로 변경되었다.
필요한 의존성 파일
datastore api와, lifecycle api가 필요하다. 당음과 같다.
모듈단계의 그래들 파일에 다음의 의존성을 추가한다.
// DataStore // Alternatively - use the following artifact without an Android dependency. implementation("androidx.datastore:datastore-preferences:1.2.0-alpha01") val lifecycle_version = "2.5.1" implementation("androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version")
Datastore 클래스 Helper 클래스 만들기
1. 소스파일
다음과 같이 헬퍼 클래스를 만들어서 읽기와 쓰기를 한다.
- "DatastoreMemorize.kt"
package com.dklaw.memorize.database import android.content.Context import androidx.datastore.core.DataStore import androidx.datastore.core.IOException import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.preferencesDataStore import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.map class DataStoreMemorize(private val context : Context) { private val Context.dataStore : DataStore<Preferences> by preferencesDataStore(name = "appPreferences") private val FILTER_ON = booleanPreferencesKey("FilterOn") // string 저장 키값 // Flow : coroutines.flow import 해야됨 val valueOfFilter : Flow<Boolean> = context.dataStore.data .map {preferences -> preferences[FILTER_ON] ?: false } // String값을 stringKey 키 값에 저장 suspend fun setFilterSwitch(switch : Boolean){ context.dataStore.edit { preferences-> preferences[FILTER_ON] = switch } } }
싱글턴으로 만들기
===== 실제 compose내에서 사용하기
android/datastore.txt · 마지막으로 수정됨: 2025/04/27 02:59 저자 이거니맨
로그인