앱의 데이터를 내부 저장소에 저장하는 방법 중 공유된 프리퍼런스(SharedPreferences)를 사용하는 방법이 있다. 플랫폼 API에서 제공하는 클래스로, 데이터를 키-값 형태로 저장할 때 사용한다. SharedPrefercenes는 앱의 간단한 데이터를 저장하는 데 유용하며 내부적으로 내장 메모리의 앱 폴더에 XML 파일로 저장된다.
SharedPreferences 객체를 얻는 방법
SharedPreferences 객체를 획득할 때 지정하는 mode 값은 다음과 같다.
** Activity.getPreferences
val sharedPref = getSharedPreferences("my_prefs", Context.MODE_PRIVATE)
데이터를 저장하려면 다음과 같은 SharedPrefereneces.Editor 클래스의 함수를 이용해야한다.
SharedPreferences.Editor 객체는 SharedPreferences의 edit() 함수로 얻는다. 그리고 Editor 객체의 put~으로 시작되는 함수를 이용해 데이터를 담으면 commit() 함수를 호출하는 순간 저장된다.
preference.edit().run {
putString("password", passwordFromUser)
commit()
}
commit() 함수 없이 실행하고자 하면 아래와 같이 작성하는 방법도 있다.
preference.edit(true) {
putString("password", passwordFromUser)
}
preference에 저장된 데이터를 가져오려면 SharedPreferences의 게터 함수를 이용하면 된다.
val data = sharedPref.getString("password", "000")
뒤의 "000"은 값이 없을 경우 default 값이다.