전체 글
-
TID(Today I DId)로 전환TiD 2024. 3. 24. 23:59
TIL를 TID로 바꿉니다. 사람이 매일 배울 수는 없다고 생각하기 때문에... 그래도 매일 뭔가는 하니까
-
[Android] Kotlin DSL, gradle.kts 사용시 Manifest에서 local.properties 사용하기안드로이드 2024. 3. 21. 10:49
*카카오 Native app key를 사용하는 것을 기준으로 작성되어있습니다. 모듈 build.gradle.kts android { namespace = "~" compileSdk = 33 defaultConfig { // ... // 로컬 프로퍼티 사용 부분 val localProperties = Properties() val localPropertiesFile = rootProject.file("local.properties") if (localPropertiesFile.exists()) { localProperties.load(localPropertiesFile.inputStream()) } val nativeAppKey = localProperties.getProperty("kakao_app_ke..
-
[Android] 레트로핏 CallAdapter 적용 방법과 후기안드로이드/정리 2024. 1. 29. 02:23
먼저 레트로핏의 CallAdapter란? 현재 레트로핏은 다음과 같은 형식의 반환을 기본적으로 지원합니다. *코루틴의 suspend 키워드를 활요한 반환에 대한 내용만을 다룹니다. interface Service{ @GET("url") suspend fun getInfo(): Call @GET("url") suspend fun getInfo(): Response @GET("url") suspend fun getInfo(): Type } 위와 같이 작성할 경우 네트워크 에러나 서버의 응답 코드에 대한 대응을 각 메소드 단에서 처리해줘야 합니다. 하지만 API호출에 대한 응답을 직접 작성한 클래스를 활용해서 데이터와 에러를 다루고 싶을때 커스텀 CallAdapter를 활용합니다. 하지만 앞으로 설명할 Cal..
-
[Android] 코틀린 엘비스 연산자(?:)의 잘못된 사용법안드로이드/트러블 슈팅 2024. 1. 8. 23:13
프로젝트를 하던 중 다음과 같은 코드를 작성했다 find() 메서드를 활용해 리스트에서 원하는 값을 가져오고 null 일경우 뒤에 작성 된 람다식이 실행되기를 바라고 작성한 코드였다. 하지만 예상과 달리 null 일 경우 엘비스 연산자 다음에 오는 코드는 실행되지 않았다. 그 이유는 다음과 같았다. 코틀린 공식 문서에서 엘비스 연산자에 대해 설명된 글이다. 위의 설명에서 핵심만 말하자면 엘비스 연산자는 "반환"값이 있을 때 사용하는 연산자이다. 그로인해 내가 작성했던 코드에서는 뒤에 따르는 ?: {binding.tvAmPm.text = binding ... 코드는 중괄호 안의 코드를 실행시키는 것이 아니라 해당 중괄호인 람다식을 "반환"한 것이었다. 그래서 위와 같은 형식을 사용하면서 뒤에 따르는 람다식..