
1. 구글 플레이스토어 target API 수준 요구사항 살펴보기 APK 파일을 구글 플레이에 업로드 할 때, 구글 플레이가 요구하는 target API 레벨 요구사항을 충족해야 합니다. 이 글이 작성되는 시점 기준(2022.10.14)으로 새로운 앱은 반드시 Android 12 (API level 31) 이상을 타겟팅 해야합니다. (Wear OS 의 경우에는 Android 11(API 30) 또는 그 이상을 만족해야 합니다.) 2022년 11월 부터는 target SDK 수준을 31 로 하거나 그 이상으로 맞춰야 합니다. 그에 따라 나타나는 수정 사항도 적합하게 반영해야 합니다. 참고로 2022년 부터, 안드로이드의 새 버전 디바이스를 사용하는 새로운 유저는 일부 오래된 앱을 사용할 수 없을 수도 있습..
[Android] This annotation should be used with the compiler argument '-opt-in=kotlin.RequiresOptIn' 해결하기 Jetpack Compose 사용하여 개발을 할 때 실험 적인 기능, 일부 베타 기능을 사용할 때 아래와 같은 어노테이션을 적용하여 사용하게 된다. @OptIn(ExperimentalMaterial3Api::class) 위 어노테이션 적용 후 빌드, 컴파일은 문제 없이 잘 되지만, 경고가 발생하여 좀 거슬렸다. 이를 제거하기 위해 app 수준 build.gradle 에 아래와 같은 옵션을 추가해준다. android { //... tasks.withType(org.jetbrains.kotlin.gradle.tasks.Kot..
[Android Groovy] build.gradle plugins apply false? 왜 false 인가 안드로이드는 Groovy 를 통해 build.gradle 를 작성하여 빌드 설정을 할 수 있다. 이때 플러그인 적용 시 문법 중에 아래와 같은 문법이 있다. plugins { id 'com.android.application' version '7.3.0' apply false id 'com.android.library' version '7.3.0' apply false id 'org.jetbrains.kotlin.android' version '1.6.10' apply false id 'com.google.dagger.hilt.android' version '2.44' apply false } ..

[Android] Retrofit HTTP Converter 결과값 파싱이 null 로 올 때 ☠️ 안드로이드 앱 에서 Retrofit 을 통해 HTTP 통신(POST)을 했을 때, 일부 값이 응답에는 제대로 온 것을 확인 하였으나, Converter.Factory() 를 통과하면 null 로 값이 떨어지는 이슈가 있어서 삽질을 좀 하였다..(원인은 정말 어이가 없었다는 결말) debug 상황 재현 interface MyService { /** * # 거래 id 생성 for 등록 */ @POST("/MyService") suspend fun postMyService(@Body body: MyServiceParams): MyServiceModel? } 회사 프로젝트 코드를 그대로 가져올 수는 없으니 해당 ..

[Android] 해상도별 drawable 이미지 리소스 추가하기 (hdpi, mdipi, xhdpi, xxdpi, xxxdpi) 안드로이드 개발 시, 이미지 (png 등) 리소스를 추가할 때, 여러 해상도에서 깨지지 않는 화질의 이미지를 표현하고자 할 때 dpi 별 이미지를 추가하는 방법을 알아보겠습니다. hdpi, mdpi, xhdpi, xxdpi 등 4개의 각각 해상도의 png 를 디자이너로 부터 제공받았고 이를 수동으로 추가하는 방법입니다. 먼저 drawable 폴더로 이동합니다. 프로젝트 네비게이션 탭에서 drawable 폴더 우클릭 후, open in finder 를 통해 해당 폴더로 바로 이동할 수 있습니다. 그럼 위와 같이 drawbla 이 존재하는 것을 볼 수 있습니다. 없으면 위와 동일..