Compose Custom Camera View가 필요한 경우 참조하기 위해 작성한 샘플 코드입니다.
- Jetpack Compose를 사용하여 기본적인 카메라 기능을 구현합니다.
- CameraX를 사용하여 카메라 프리뷰를 표시하고 사진을 촬영합니다.
- 전면/후면 카메라 전환 기능을 구현합니다.
- 촬영한 사진의 Bitmap을 가져오는 기능을 구현합니다.
- (옵션) 촬영한 사진을 파일로 저장하는 기능을 구현합니다.
- Android Studio Hedgehog | 2023.1.1 Patch 1
- Build #AI-231.9392.1.2311.11255304, built on December 27, 2023
- Android SDK Build-Tools 35-rc2
- Android SDK Platform-Tools 34.0.5
- Java Version: 17
- kotlin Version: 1.9.0
- Kotlin Compose Compiler: 1.5.1
- Android Gradle Plugin Version: 8.1.2
- Gradle Version: 8.2
- Jetpack Compose
- MVI pattern
- Hilt
- Android CameraX
- Coil (추가 예정)
Component의 기능 확인 목적의 샘플 코드로, presentation layer에 해당하는 ui
패키지를 중심으로 구성되어 있습니다.
├── BasicCamera.kt
├── MainActivity.kt
└── ui
└── ui
├── components
│ ├── CameraComponent.kt
│ ├── CameraComponentModel.kt
│ └── CheckPermissionComponent.kt
├── screen.camera
│ ├── CameraEvent.kt
│ ├── CameraState.kt
│ ├── CameraScreen.kt
│ └── CameraViewModel.kt
└── theme
- Screen의 경우 Compose의 원활한 구성을 위해 MVI 패턴을 바탕으로 구성하였습니다.
- CameraComponent는 Bitmap 후처리를 위한 viewModel을 가지고 있습니다.