![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bwGmXe/btrOD4lFR8W/ewiwUpkVQWa7ZUgfEikhB0/img.png)
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 } ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b7d0DK/btrNuepWkpe/gGPs6k9v1WVgfwWiGKRHfk/img.png)
[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? } 회사 프로젝트 코드를 그대로 가져올 수는 없으니 해당 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/9F2B4/btrKkS4JGp0/exkCPwmeIotcP9Ue0w4K71/img.png)
[Android] 해상도별 drawable 이미지 리소스 추가하기 (hdpi, mdipi, xhdpi, xxdpi, xxxdpi) 안드로이드 개발 시, 이미지 (png 등) 리소스를 추가할 때, 여러 해상도에서 깨지지 않는 화질의 이미지를 표현하고자 할 때 dpi 별 이미지를 추가하는 방법을 알아보겠습니다. hdpi, mdpi, xhdpi, xxdpi 등 4개의 각각 해상도의 png 를 디자이너로 부터 제공받았고 이를 수동으로 추가하는 방법입니다. 먼저 drawable 폴더로 이동합니다. 프로젝트 네비게이션 탭에서 drawable 폴더 우클릭 후, open in finder 를 통해 해당 폴더로 바로 이동할 수 있습니다. 그럼 위와 같이 drawbla 이 존재하는 것을 볼 수 있습니다. 없으면 위와 동일..
Gradle Build Setup Hilt를 사용하려면 Android Gradle 모듈의 build.gradle 파일에 다음 빌드 종속성을 추가하세요. dependencies { implementation 'com.google.dagger:hilt-android:2.41' annotationProcessor 'com.google.dagger:hilt-compiler:2.41' // For instrumentation tests androidTestImplementation 'com.google.dagger:hilt-android-testing:2.41' androidTestAnnotationProcessor 'com.google.dagger:hilt-compiler:2.41' // For local un..
[Hilt] Hilt 를 사용 하면 좋은 점 (Dagger2 에비해 장점) Benefits of using Hilt 왜 힐트를 사용합니까? 상용구 감소 분리된 빌드 종속성 단순화된 구성 향상된 테스트 표준화된 components Reduced boilerplate Hilt의 목표는 사용자가 Dagger 설정의 나머지 부분에 대해 걱정할 필요 없이 Dagger 바인딩 정의 및 사용법에 집중할 수 있도록 하는 것입니다. 즉, 모듈 및 인터페이스 목록이 있는 component 정의, 수명 주기의 올바른 지점에서 구성 요소를 만들고 유지하는 코드, 상위 구성 요소를 가져오기 위한 인터페이스 및 캐스트 등과 같은 것을 숨깁니다. 일부 단순성은 모놀리식 구성 요소를 사용하는 Hilt에서도 나옵니다(즉, 모든 활동에..
Hilt Hilt는 Dagger 종속성 주입을 Android 애플리케이션에 통합하는 표준 방법을 제공합니다. Hilt의 목표는 다음과 같습니다. Android 앱용 Dagger 관련 인프라를 단순화합니다. 앱 간의 설정, 가독성/이해 및 코드 공유를 용이하게 하기 위해 표준 component 및 범위 세트를 생성합니다. 다양한 빌드 유형(예: 테스트, 디버그 또는 릴리스)에 서로 다른 바인딩을 프로비저닝하는 쉬운 방법을 제공합니다. Hilt Design Overview Hilt는 Dagger 설정 코드를 생성하는 코드로 작동합니다. 이것은 Dagger를 사용하는 대부분의 상용구를 없애고 실제로 개체를 생성하는 방법과 개체를 주입할 위치를 정의하는 측면만 남깁니다. Hilt는 Dagger component..
Dagger 모든 애플리케이션에서 최고의 클래스는 다음과 같은 작업을 수행하는 클래스입니다: BarcodeDecoder, KoopaPhysicsEngine 및 AudioStreamer. 이러한 클래스에는 종속성이 있습니다. 아마도 BarcodeCameraFinder, DefaultPhysicsEngine 및 HttpStreamer일 것입니다. 대조적으로, 모든 응용 프로그램에서 최악의 클래스는 많은 작업을 수행하지 않고 공간을 차지하는 클래스입니다: BarcodeDecoderFactory, CameraServiceLoader 및 MutableContextWrapper. 이 클래스는 흥미로운 것들을 함께 연결하는 서투른 덕트 테이프입니다. Dagger는 보일러 플레이트를 작성하는 부담 없이 종속성 주입 디..
Hello Dagger Dagger는 Java, Kotlin 및 Android를 위한 완전히 정적 컴파일 타임 종속성 주입 프레임워크입니다. Square에서 만들고 현재 Google에서 유지 관리하는 이전 버전을 개조한 것입니다. The latest Dagger release is: Dagger 2.41 (2022-04-16 기점) Dagger는 리플렉션 기반 솔루션을 괴롭히는 많은 개발 및 성능 문제를 해결하는 것을 목표로 합니다. 자세한 내용은 Gregory Kick의 이 강연(슬라이드)에서 확인할 수 있습니다.