일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- build
- Android
- dart
- 안드로이드 스튜디오
- Github
- studio
- 의존성주입
- 웹뷰
- Kotlin
- RecyclerView
- image
- 깃헙
- Retrofit
- WebView
- 스튜디오
- 레트로핏
- 에러
- 안스
- error
- ADB
- 코루틴
- 안드로이드
- 안드로이드스튜디오
- MVVM
- 코틀린
- GIT
- Gradle
- 유튜브
- viewpager
- coroutine
- Today
- Total
코딩하는 일용직 노동자
Kotpref 를 이용해 SharedPreferences 를 더 쉽게 이용해보자. 본문
SharedPreferences 는 정말 편리한 도구입니다.
아이디, 비밀번호, 이메일, 간단한 설정값 등을 저장하고 꺼내올 수 있습니다.
SharedPreferences 를 사용하려면 약간의 코드가 필요합니다.
SharedPreferences prefs = getPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(key, value);
editor.commit();
때문에 SharedPreferences 를 처리하는 별도의 클래스를 만들어두고 사용하는 경우가 많습니다.
Kotpref 는 이런 SharedPreferences 를 간단하고 쉽게 구현할 수있는 라이브러리입니다.
https://github.com/chibatching/Kotpref
우선 설치를 위해 build.gradle에 앱 종속성을 추가합니다.
// kotpref
implementation "com.chibatching.kotpref:kotpref:2.8.0"
implementation 'com.chibatching.kotpref:gson-support:2.8.0'
그리고 Application 클래스에서 Kotpref.init(context) 함수를 호출합니다.
Gson 도 함께 이용할 수 있도록 셋팅하겠습니다.
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
Kotpref.init(this)
Kotpref.gson = Gson()
}
}
Kotpref 는 SharedPreferences 에 저장하기 위해 데이터 모델을 정의해야합니다.
KotprefModel 을 상속받아서 아래와 같이 데이터 모델을 만들 수 있습니다 .
import com.chibatching.kotpref.KotprefModel
import com.chibatching.kotpref.gsonpref.gsonPref
import java.util.HashMap
object AppPrefs : KotprefModel() {
var pushToken: String by stringPref()
var userName: String by stringPref()
var userNickname: String by stringPref()
var userAge: Int by intPref(0)
var money: Long by longPref(1L)
var isMarried: Boolean by booleanPref(false)
var userList: List by gsonPref(listOf())
var ageMap: HashMap<String, Int> by gsonPref(hashMapOf())
}
코틀린에서는 object로 클래스를 정의하면, 싱클톤(Singleton) 패턴이 적용되어 객체가 한번만 생성됩니다.
이제 일반 속성 액세스와 동일한 방식으로 쓰고 읽을 수 있습니다.
private fun prefTest() {
AppPrefs.pushToken = "ask1291kd892md9_ai8sm"
AppPrefs.userName = "이지은"
AppPrefs.userNickname = "아이유"
AppPrefs.userAge = 30
AppPrefs.money = 65200000
AppPrefs.isMarried = false
AppPrefs.userList = listOf(
UserData(20, "홍길동", "남", "01012345678"),
UserData(14, "사나", "여", "010여23456789"),
UserData(20, "유인나", "", "010여98765432"),
UserData(34, "최성민", "남", "01098562438")
)
AppPrefs.ageMap = hashMapOf(
"이시윤" to 3, "홍길동" to 20, "김수인" to 28
)
}
private fun prefPrint() {
println("AppPrefs.pushToken: ${AppPrefs.pushToken}")
println("AppPrefs.userName: ${AppPrefs.userName}")
println("AppPrefs.userNickname: ${AppPrefs.userNickname}")
println("AppPrefs.userAge: ${AppPrefs.userAge}")
println("AppPrefs.money: ${AppPrefs.money}")
println("AppPrefs.isMarried: ${AppPrefs.isMarried}")
println("AppPrefs.userList: ${AppPrefs.userList}")
println("AppPrefs.ageMap: ${AppPrefs.ageMap}")
}
사용방법은 너무나 쉽습니다.
List 와 HashMap 도 쉽게 저장하고 꺼내올 수 있습니다.
Kotpref 코어 모듈은 기본 SharedPreferences 값 유형 (String, Int, Long, Float, Boolean, String set) 만 지원합니다.
kotlin enum 및 gson 객체를 지원하는 하위 모듈이 있습니다.
테스트에 사용한 프로젝트는 GitHub에서 확인하실 수 있습니다.
https://github.com/Bacass/MySharedPreferencesExam
'안드로이드' 카테고리의 다른 글
안드로이드 StatusBar 색상 변경하기. (Kotlin) (0) | 2020.05.03 |
---|---|
안드로이드 웹뷰(WebView) 셋팅 (Kotlin) (0) | 2020.05.03 |
안드로이드 MVVM 패턴으로 작업해보기 (5) (0) | 2020.05.01 |
안드로이드 MVVM 패턴으로 작업해보기 (4) (0) | 2020.05.01 |
안드로이드 MVVM 패턴으로 작업해보기 (3) (0) | 2020.04.30 |