Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

모바일 앱(안드로이드)

Android | Jetpack Compose로 Photo Picker 구현 (백포트 없이)

Billcorea 2025. 11. 13. 15:06
반응형

📸 Android | Jetpack Compose로 Photo Picker 구현 (백포트 없이)

jetpack compose photo picker

개요 (Intro)

오늘은 Android 13 이상을 대상으로 Jetpack Photo Picker를 백포트 없이 Compose로 구현해보았습니다. Google Play 서비스의 백포트 모듈을 사용하지 않고도 최신 API만으로 충분히 구현 가능하다는 점을 확인했습니다.

📅 날짜: 2025.11.06
🎯 목표: Jetpack Photo Picker를 Compose에서 구현
🧰 기술: Kotlin, Jetpack Compose, Coil, Android 13+

문제 정의 (Problem / Motivation)

앱에서 사용자에게 저장소 권한 없이 사진을 선택하게 하고 싶었습니다. Android 13 이상에서는 Jetpack Photo Picker가 기본 제공되므로, 백포트 없이도 충분히 구현 가능하다는 점을 실험해보고자 했습니다.


// Jetpack Photo Picker Launcher
val pickMedia = rememberLauncherForActivityResult(PickVisualMedia()) { uri ->
    imageUri.value = uri
}

해결 과정 (How I Solved It)

Jetpack Compose 환경에서 rememberLauncherForActivityResult를 사용해 PickVisualMedia를 호출했습니다. 선택된 이미지는 Coil 라이브러리의 rememberAsyncImagePainter로 화면에 표시했습니다. AndroidManifest.xml에는 백포트용 설정을 생략했습니다.


Button(onClick = {
    pickMedia.launch(PickVisualMediaRequest(PickVisualMedia.ImageOnly))
}) {
    Text("사진 선택하기")
}

결과 (Result)

Android 13 이상 기기에서 저장소 권한 없이 사진을 선택하고 화면에 표시하는 데 성공했습니다. 백포트 없이도 충분히 안정적으로 동작하며, UI 반응 속도도 매우 빠릅니다.

✅ Android 13 이상에서 Photo Picker 정상 작동
📱 저장소 권한 없이 이미지 선택 가능

느낀 점 / 회고 (Reflection)

Jetpack의 최신 API는 정말 강력합니다. 백포트 없이도 충분히 유연하게 구현할 수 있었고, Compose 환경에서도 매우 직관적이었습니다. 다음에는 다중 이미지 선택 기능도 추가해보고 싶습니다.

참고자료 (References)

반응형