반응형
📸 Android | 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)
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
| 🦾 Android | 서식 캔버스 폼 - 이 앱 개발의 기본 지식 정리 (2) | 2025.11.17 |
|---|---|
| 개발일기: Wear OS Complication 클릭 시 앱 실행하기 (1) | 2025.11.15 |
| 개발일기: Wear OS Tile Chip 너비 문제 해결 (2) | 2025.11.11 |
| 🧠 Android | ViewModel에서 StateFlow로 상태 관리하기 (0) | 2025.10.30 |
| 습관관리 앱 : 개발 일기, 인앱 업데이트, 코드 최적화, 그리고 험난했던 Gradle 플러그인 설정기 (1) | 2025.10.24 |