Android의 DataStore란? -1

상상코딩·2022년 1월 11일
0

안드로이드

목록 보기
7/21

현재 안드로이드에서 dataStore 사용을 적극 권장. 개발자 문서에서도 sharedPreferences 사용 가이드 제거....

DataStore란?

프로토콜 버퍼를 사용하여 키-값 쌍 또는 Typed Object를 저장할 수 있는 저장소 솔루션.
코루틴 및 flow를 이용하여 비동기적이고 일관된 트랜잭션 방식으로 데이터를 저장.

DataStore의 종류

  • Preference DataStore(key-value)
  • Proto DataStore(사용자가 정의한 데이터를 저장) -> 프로토콜 버퍼*를 사용하여 스키마 정의 : 데이터의 타입을 보장해줌 + SharedPreference보다 빠르고 단순.

*프로토콜 버퍼 : 구글의 데이터를 직렬화 하기위한 매커니즘

DataStore의 특징

  1. 비동기API 제공 -> UI스레드에서 호출해도 안전함(Dispather.IO 에서 동작하기 때문에)
  2. runtime exception으로부터 안전

2번 예외처리 예시,,

    val text : Flow<String> = context.dataStore.data
        // 여기 catch문에서 처리
        .catch { exception ->
            if (exception is IOException) {
                emit(emptyPreferences())
            } else {
                throw exception
            }
        }
        .map {preferences ->
            preferences[stringKey] ?: ""
        }
profile
히히낙낙

0개의 댓글