본문 바로가기

컴포즈20

[Android] 안드로이드 중요 값 숨기기 - local.properties를 사용하여 키 관리하기 예제(Kotlin) / Unresolved reference: BuildConfig 해결 방법 개발을 하다 보면 API키 값이나 중요 값등을 숨기고 싶을 때가 있다. 그럴 때는 local.properties를 사용하면 간단하게 숨김이 가능하다. 이제 차근차근 알아보자! ✅ 깃을 사용한다면. gitignore에 /build , /local.properties 이 두 가지가 들어가 있다고 가정하고 시작해 보겠다!# 사용방법아래 예제에서는 API_KEY값을 숨기는 예제를 해보겠다.## local.properties 변수 값 설정우선 가장 먼저 해야 할 것은 local.properties파일에 숨기고 싶은 값을 키 - 값 형식으로 작성해 준다. local.properties>API_KEY = "12345678910" ## build.gradle.kts(app) 키 값 불러오기앱 수준의 gradle에서 .. 2024. 8. 31.
[Android-Compose] 안드로이드 컴포즈 부수 효과 알아보기! (Android Compose DisposableEffect, SideEffect, produceState, derivedStateOf, snapshotFlow) - SideEffect - 2편 이번에는 1편에 이어서 Compose의 부수효과를 알아보도록 하자!# DisposableEffect✅ 키가 변경되거나 컴포저블이 컴포지션을 종료한 후 정리해야 하는 부수 효과를 처리해 주는 API - Composable의 생명주기에 맞춰 정리되어야 하는 리스너나 작업이 있는 경우에 리스너나 작업을 제거하기 위해 사용된다.- 제공된 키 값이 변경될 때마다 이전 효과를 정리하고 새로운 효과를 실행한다.- LaunchedEffect, onDestroy와 유사한 역할을 한다. DisposableEffect는 다음과 같은 형태로 사용된다.DisposableEffect(key1, key2) { // Composable이 제거될 때 Dispose 되어야 하는 효과 초기화 onDispose { .. 2024. 7. 30.
[Android-Compose] 안드로이드 컴포즈 부수 효과 알아보기! (Android Compose LaunchedEffect, rememberCoroutineScope, rememberUpdatedState) - SideEffect - 1편 이번 포스팅은 컴포즈를 사용하다 보면 LaunchedEffect, rememberCoroutineScope 등 다양한 Effect API들을 사용하게 된다.이러한 Effect API들이 무엇인지, 각각의 사용법과 특성에 대해 알아보겠다.# 부수 효과란?Effect API들을 알아보기 전에 부수 효과가 무엇인지 먼저 알 필요가 있다. 아래는 공식문서에 나온 부수 효과 설명이다.정리를 하자면 아래와 같다- 부수 효과는 구성 가능한 함수(Composable)의 범위 밖에서 발생하는 앱 상태에 관한 변경사항이다.- Composable에는 부수 효과가 없는 것이 좋다. 하지만 아래와 같은 경우는 부수효과가 필요한 경우가 있다.- 스낵바 표시- 특정 상태 조건에 따라 다른 화면으로 이동하는 등 일회성 이벤트를 트리.. 2024. 7. 27.
[Android-Compose] 안드로이드 컴포즈 rememberLauncherForActivityResult(registerForActivityResult)사용법 이번 포스팅은 XML에서 액티비티끼리 데이터를 주고받을 때 사용하는 registerForActivityResult를 Compose에서 사용하는 방법을 공부해 보겠다! 만약 프로젝트 구성을 Compose Only면 필요 없을지도 모르지만 XML + Compose을 혼합해서 사용한다면 Compose -> Acltitly -> 원래 Compose로 데이터를 전달해야 할 경우가 생긴다. 이럴 경우 어떤 식으로 해결하는지 아래 예제로 알아보자! # 사용법 공식 문서에서 보면 이미지를 가져오는 예제가 있다. 보통 예제는 권한을 확인하거나 공식 문서처럼 이미지를 가져오는 예제이다. 여기서는 간단한 데이터를 가져오는 예제를 할 것이다. 예제의 순서를 설명하자면 1. Composable 함수인 A Screen에서 Act.. 2023. 9. 27.
[Android-Compose]안드로이드 컴포즈 백 버튼/ 뒤로가기 처리 (onbackpressed) 이번 포스팅은 안드로이드 컴포즈에서 백 버튼/뒤로 가기 처리를 하는 방법을 알아보겠다. 얼마전 컴포즈로 만들고 있는 프로젝트에서 백 버튼/뒤로 가기 처리를 해야 하는 상황이 생겼다. 기존 XML이였으면 onbackpressed override 해서 처리했을 텐데 컴포즈에서는 그런 방법이 안돼서 구글링을 해보았다. 그랬더니 생각보다 정말 간단했다! 바로 아래 코드 처럼 BackHandler를 호출해 스코프 안에서 하고 싶은 작업을 처리하면 된다. @Composable fun TestScreen(){ BackHandler { // todo Back버튼 처리 로직 } // todo Code } 2023. 7. 30.
[오류] java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest 이번 포스팅은 개발하는 프로젝트에서 컴포즈 NavDeepLink를 이용해서 데이터를 넘겨주고 있었다 넘겨주는 인수가 URL형식이라서 평소대로 딥링크 안에 인수를 추가해 넘겨줬다 하지만 아래와 같은 오류가 발생했다. java.lang.IllegalArgumentException: Navigation destination that matches request NavDeepLinkRequest # 오류 원인 Navigation의 routes는 url과 동등하기 때문에 URL 내에 다른 URL을 전달해야 하는 경우엔 인코딩해줘야 하는데 인코딩을 안 하고 바로 URL주소를 넘겨줬기 때문에 오류가 발생했다. # 해결 방법 방법은 간단하다 아래의 코드를 사용해 URL을 인코딩해서 넘겨주면 된다. URLEncoder... 2023. 7. 30.