Preference란?
- 프로그램의 설정 정보 (사용자의 옵션 선택 사항 이나 프로그램의 구성 정보)를
영구적으로 저장하는 용도로 사용- XML 포맷의 텍스트 파일에 키-값 세트로 정보를 저장.
응용 프로그램 내의 액티비티 간에 공유하며,
한쪽 액티비티에서 수정 시 다른 액티비티에서도 수정된 값을 읽을 수 있다.
응용 프로그램의 고유한 정보이므로 외부에서는 읽을 수 없다.
getSharedPreferences (name, mode)

getPreferences —>잘안씀

//여러개의 Shared Preference
val sharedPrefs = activity?.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE)
//한개의 Shared Preference
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE)
예시코드
//값을 저장할 때는 put메서드를 , 저장한 값을 꺼낼때는 get메서드를 사용해주면 된다
//(get메서드에서는 default값을 설정해줘야한다)
private fun saveData() {
//val pref = getSharedPreferences("pref",0) -> 0 가독성이 떨어져 아래꺼 써야할 듯
val pref = getSharedPreferences("pref", MODE_PRIVATE)
//name : pref 이란 이름으로 Xml파일을 만듬
//mode : MODE_PRIVATE = 생성된 XML 파일은 호출한 애플리케이션 내에서만 읽기 쓰기가 가능
val edit = pref.edit() // 수정 모드
// 1번째 인자는 키, 2번째 인자는 실제 담아둘 값
edit.putString("name", binding.mainEtTitleEdit.text.toString())
//neme이라는 키값으로 Edit Text의 적혀있는 값을 저장
edit.apply() // 저장완료
}
private fun loadData() {
//val pref = getSharedPreferences("pref",0) -> 0 가독성이 떨어져 아래꺼 써야할 듯
val pref = getSharedPreferences("pref", MODE_PRIVATE)
// 1번째 인자는 키, 2번째 인자는 데이터가 존재하지 않을경우의 값
binding.mainEtTitleEdit.setText(pref.getString("name",""))
}
Gradle 빌드 파일 방식 Groovy와 KTS의 차이 참조
Groovy의 장단점
- 장점
- Groovy는 동적 타입 언어로서 높은 유연성을 제공하기에
- 빌드 스크립트를 더 간결하고 동적으로 작성할 수 있다
- Java에 익숙한 개발자에게 Groovy는 비교적 쉽게 접근할 수 있어 학습 곡선이 낮고 기존 Java 코드를 쉽게 통합할 수 있다
- 오랜 기간 동안 Gradle의 기본 언어였기 때문에 관련 자료와 커뮤니티 지원이 많다
- 단점
- 동적 타입 언어의 특성상 컴파일 타임에 오류를 발견하기 어렵기에
- 복잡한 빌드 스크립트에서 문제를 일으킬 수 있다
- Groovy의 동적 특성 때문에 IDE에서의 코드 완성 및 오류 탐지 기능이
Kotlin에 비해 제한적일 수 있다
Kotlin DSL (KTS)의 장단점
- 장점
- Kotlin은 정적 타입 언어이기에 컴파일 시점에 오류를 잡아내어 빌드 시간과 안정성을 개선됐다
- Kotlin의 정적 타입 특성 덕분에 IDE에서 더 나은 코드 완성과 리팩토링, 오류 탐지 기능을 제공한다
- Kotlin은 현대적인 언어 기능을 제공하기에 Kotlin 자체의 인기가 높아지면서 관련 자료가 점차 늘어나고 있다
- 단점
- Kotlin에 익숙하지 않은 사용자에게는 Groovy에 비해 배우기 어려울 수 있다
- Kotlin DSL은 Groovy에 비해 초기 설정과 실행이 느릴 수 있다
Groovy와 KTS의 주요 차이점
- 언어 특성: Groovy는 동적 타입, Kotlin은 정적 타입 언어
- 성능과 안정성: Kotlin은 Groovy의 비해 더 높은 성능과 안정성을 제공한다
- 코드 스타일과 구조: Kotlin은 Groovy의 비해 언어 상에서 더 구조화되고 모듈화된 코드 스타일을 장려하고 있다.