Android(98)
-
Android Studio에서 Proto DataStore 설정하는 방법 (gradle kotlin)
Proto DataStore에 대한 친절한 정보가 많이 없어서제가 열심히 삽질해가며 작성한 글입니다... 😭 참고한 소스코드 : NowInAndroid[versions]# datastoreandroidxDataStore = "1.1.1"protobufPlugin = "0.9.4"protobuf = "4.26.1"junitJunit = "4.12"[libraries]# AndroidXandroidx-dataStore = { group = "androidx.datastore", name = "datastore", version.ref = "androidxDataStore" }androidx-dataStore-core = { group = "androidx.datastore", name = "datastor..
2024.11.07 -
[Android/Error]Cannot add a AndroidSourceSet with name 'debug' as a AndroidSourceSet with that name already exists
개요새로운 프로젝트에서 Proto DataStore를 도입하기 위해 DataStore의 Proto 모듈을 추가하였다.해당 모듈 Gradle 작성 중에 한 오류를 만나게 되었다. A problem occurred configuring project ':core:datastore-proto'. > Cannot add a AndroidSourceSet with name 'debug' as a AndroidSourceSet with that name already exists. 이 오류는 AndroidSourceSet을 이미 정의된 이름(debug 또는 release)으로 다시 추가하려고 할 때 발생하는 것이었다. 그렇다면 이 오류를 발생시킨 코드는 무엇일까.원인androidComponents.beforeVar..
2024.11.06 -
Preference DataStore와 Proto DataStore의 차이
개요SharedPreferences는 이미 무덤으로 들어간지 오래.하지만 현재 회사는 아주 아주 오래된 프로젝트였고, 여전히 SharedPreferences를 사용하고 있었다.데이터 무결성이 지켜지지 않아 자꾸 문제가 발생하였기에 마이그레이션을 하기로 결정 !! 이전 회사에서 사용했던 방법은 JetPack에서 나온 DataStore였다.당연하게 써왔던 DataStore의 개념이 NowInAndroid를 보며 무너졌다. Proto DataStore ???그게 대체 뭔데 !!!!!!! 모르면 정리해야지...정리1. Preference DataStore란?Key-Value 형식으로 데이터를 저장하는 방법이다.SharedPreferences의 방식과 유사하다.단, 구조화 된 데이터는 지원하지 않으며 Boolea..
2024.11.05 -
Android Jetpack ComposeUI 기초 문법 및 특징
ComposeUI 강의를 열심히 봤는데, 아무리 따라해도 머리에서 휘발되어버리는 느낌이다.직접 Compose를 이용한 토이 프로젝트를 하기 전에 전체적으로 문법 정리를 먼저 해야할 것 같았다. 1. @Composable 애너테이션 Composable 함수Jetpack Compose에서 UI를 정의하는 기본 단위함수에 @Composable 애너테이션을 붙이면 이 함수는 UI 요소를 그릴 수 있게 된다.@Composablefun Greeting(name: String) { Text(text = "Hello, $name!")} 2. Text 텍스트 출력텍스트를 화면에 표시하는 가장 기본적인 컴포넌트이다.@Composablefun SimpleText() { Text(text = "Hello, Wor..
2024.08.24 -
[Android/Error] Constant expression required
갑자기 Switch ~ Case 문에서 ‘Constant expression required’ 오류가 발생하였다. 기본적으로 Android Gradle 플러그인 8.0.0부터 최적화된 빌드 속도를 위해 리소스(예 : 상수 표현식) R.id. ...가 더 이상 선언되지 않기에 발생한 오류였다.switch (R.id.btn) { case 입력값1: ... break; case 입력값2: ... break; ... default: ... break;}위와 같이 코드를 작성하면 해당 오류가 발생하는 것이다.해결 방법은 아래와 같다. 방법1. Switch ~ Case 문을 if 문으로 변경한다. 해당 소스코드 switch 위에 커서를 올린 뒤, al..
2024.07.03 -
[Android/Error] AGP 버전에 맞춰 Android Studio 업데이트 하기
현상 The project is using an incompatible version (AGP 8.0.2) of the Android Gradle plugin. Latest supported version is AGP 7.4.2 Project의 gradle 버전을 8.0.2 버전으로 업데이트 했는데, 해당 프로젝트에서는 사용할 수 없다는 이슈가 발생하였다.원인 및 해결Gradle 버전 별로 호환이 되는 Android Studio 버전이 있다. AGP 8.0.0 버전은 Android Studio Flamingo (2022.1.1) 버전부터 호환이 된다. AGP 8.0.2 버전은 Android Studio Giraffe (2022.3.1) 버전부터 호환이 된다. Gradle 버전에 맞춰 Android Stu..
2024.06.28