Datastore

    [Android Datastore] 5. Shared Preferences를 Datastore로 Migration하기

    Shared Preferences와 Datastore Shared Preferences를 Datastore로 Migration 하기 위해서는 Datastore가 저장되는 공간에 Shared Preferences가 저장했던 정보를 다시 저장해야 한다. 이 뜻은 Shared Preferences를 Datastore로 이전 저장하기 위해 Migration 용 스펙을 정의해놓은 객체가 필요하다는 뜻이다. Shared Preferences를 Datastore로 이전하는 작업은 보통 두가지 상황의 경우에 고려된다. 첫 째, Shared Preferences가 새로 만들 Datastore과 Dependency가 있어 같이 작업하는 것이 좋은 경우. 둘 째, Datastore에서 제공하는 Coroutines, Flow..

    [Android Datastore] 4. Proto Datastore 사용 방법 한 번에 정리하기

    환경세팅 안드로이드에서 Proto Datastore을 사용하기 위해서는 Type Safety를 위한 처리를 해주어야 하기 때문에 Preference Datastore보다 복잡하다. Gradle 파일 세팅 1. 모듈 수준의 gradle 파일에 플러그인을 추가한다. plugins { .. id("com.google.protobuf") version "0.8.17" } 2. 모듈 수준의 gradle에 라이브러리를 추가한다. 하나는 datastore 라이브러리이고 다른 하나는 protocol buffer을 위한 java 라이브러리이다. dependencies { .. implementation("androidx.datastore:datastore:1.0.0") implementation("com.google.p..

    [Android Datastore] 3. Proto Datastore 이란 무엇인가?

    Proto Datastore이란 무엇인가? public interface DataStore { public val data: Flow public suspend fun updateData(transform: suspend (t: T) -> T): T } Proto Datastore은 DataStore 인터페이스를 구현하는, 간단한 데이터를 key-value 쌍으로 저장하기 위한 데이터 저장소 솔루션이다. 이전 SharedPreference나 Preference Datastore과는 달리 저장되는 데이터의 Type Safety를 보장한다는 점이 큰 장점이다. 따라서 Primitive Type이나 간단한 Collection 타입의 저장만이 지원되는 SharedPreference나 Preference Data..

    [Android Datastore] 2. Preference Datastore 사용 방법 한 번에 정리하기

    Preference Datastore이란? public interface DataStore { public val data: Flow public suspend fun updateData(transform: suspend (t: T) -> T): T } Preference Datastore이란 DataStore 인터페이스를 구현하는 구현체로 Android에서 간단한 데이터를 key-value 쌍으로 저장하기 위해 사용하는 라이브러리이다. SharedPreference와 같이 Type Safety를 제공하지 않는 데이터 저장소 솔루션이다. Type Safety을 제공하지 않아 데이터 저장소에서 꺼낸 데이터에 대해 타입을 잘못 지정한다면 오류가 발생할 수 있다. 그럼에도 여전히 비동기 작업을 위해 Corou..