Nature Album 프로젝트에서 HomeScreen에서 카메라와 GPS 권한을 요청하는 로직을 어디에 위치시킬지에 대한 문제에 직면했다.
앱이 시작되면 MainActivity에서 HomeScreen을 띄우고, HomeScreen의 카메라 버튼을 클릭할 때 카메라 권한을 요청한 후, 권한이 허용되면 카메라를 실행한다. 그러나 권한 요청 로직을 어디에서 처리해야 하는지, 그리고 권한이 허용된 후 화면 전환을 어떻게 할지에 대한 문제가 발생했다.
권한 요청 로직을 처리할 수 있는 여러 가지 방법을 검토하고, 각 방법의 장단점과 구현 방법을 비교하여 최적의 해결책을 도출하였다. 아래는 고려된 주요 해결 방법이다.
LaunchedEffect
와 rememberCoroutineScope
를 사용하여 권한 요청을 비동기적으로 처리한다.rememberLauncherForActivityResult
를 사용해 권한을 요청하고, 그 결과에 따라 UI를 업데이트한다.PermissionScreen
을 생성하고, rememberLauncherForActivityResult
를 사용해 권한 요청 로직을 추가한다.onPermissionGranted
콜백을 통해 HomeScreen으로 이동하도록 설정한다.