먼저 이제는 SharedPreferences는 deprecated된다고 한다.
이유는 SharedPreferences는 한계점이 존재한다.
SharedPreferences는 비동기 작업을 제대로 해주지 않으면 ANR을 발생시킬수 있으며, 오류가 생길 시 확인이 불가능했으며, 런타임에 예외가 생기면 런타임에러가 발생해 잘못 사용하면 앱이 강제 종료 될 수 도 있다고 한다. 또한 Strong consistency가 보장되는 api가 없어 다중 스레드 환경에서 다른 결과값이 생길 수 있었다. 이러한 한계가 있어 다양한 처리를 해주어야 했다.
# Strong consistency : 데이터베이스에서 사용하는 용어인데 관계형 데이터베이스에서 시간이 달라도 같은 정보로 처리하는 느낌으로 보인다.
Datastore의 등장
Datastore는 SharedPreferences의 다양한 문제점을 해결함은 물론 동작을 개선시켰다.
첫째로 Datastore은 Coroutine을 사용해 동시성 프로그래밍에 최적화된 API를 제공한다.
둘째로 다중 스레드 환경에서 strong Consistency를 보장한다.
마지막으로 Proto Datastore에 한해 가장 중요한 특성인 Type Safety를 보장한다.
Datastore의 Coroutines
1. 데이터를 꺼낼대는 Flow를 사용
2. 데이터를 입력할때는 Dispatchers.IO를 강제로 사용하도록 만듦
'Android > 기타' 카테고리의 다른 글
생명주기에 대해서 (0) | 2022.11.03 |
---|---|
다양한 진입 방법에 대해 알아보자 (0) | 2022.10.28 |
SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable or by setting the sdk.dir path in your project's local properties file.. (1) | 2022.10.12 |
안드로이드 최신버젼 오류 잡는법 (0) | 2022.10.09 |
디버깅 찍는 법 (0) | 2022.10.08 |