Android 의 Notification Permission 적용하기

tom·2022년 8월 29일
0

Android

목록 보기
2/6
post-thumbnail

이 글은 안드로이드 공식 medium 블로그에 게시된 Top Tips for Adopting Android’s Notification Permission 원본 글을 나름대로 해석하면서 정리한 글입니다. 😎

개요

세계적으로 과도한 알림은 digital-wellbeing (디지털-웰빙) 문제로 자리잡고 있습니다.

그래서 이번 Android 13 에서 runtime permission 을 도입해, 다시 사용자가 알림 환경을 컨트롤할 수 있도록 했습니다.

사용자들은 foreground service 를 포함하여 알림 센터에 알림을 포스트하기 전에 이 권한을 부여해야 합니다.

Target SDK 가 32 이하일 때, In-Context 요청

Android 13 에서는 앱이 첫 notification channel 을 생성할 때 사용자가 볼 수 있는 activity 가 디스플레이 된 경우에 알림 권한 요청화면이 표시됩니다.

즉, 앱을 시작할 때 또는 백그라운드에서 실행하는 동안 앱이 첫 번째 notification channel 을 만드는 경우 사용자는 앱을 실행한 후 바로 권한 요청 화면을 볼 수 있습니다.

하지만 이처럼 갑작스럽게 권한 요청 화면이 등장하면 앱의 사용자 이동에 방해가 될 수 있고, 또한 권한 거부율이 증가될 수도 있습니다. 이는 당연히 앱에 익숙치 않은 신규 사용자들은 개인 정보에 대한 접근을 허용하는 것에 대해 불편하게 여길 수 있기 때문입니다.

이러한 이유들로 인해, in-context 상태일 때 권한을 요청하기를 적극 권장합니다.

🤔 in-context?

- 해당 권한을 사용하는 적절한 기능으로 이동할 때를 의미합니다.

앱이 Android 13 (target SDK 가 33 이상) 을 대상으로 할 때 in-context 상태에서 권한을 요청하는 것은 쉽지만, 이전 Android 버전에서는 in-context 상태에서 권한 요청하는 방식을 첫 번째 notification channel 을 생성할 때로 변경하면 좀 더 수월할 것입니다.

Android 는 사용자가 in-context 상태일 때 첫 번째 notification channel 을 생성하는 것을 권장합니다.

또한 알림에 대한 접근 권한이 필요한 이유를 설명해주는 UI 도 작성할 수 있을 것입니다.
지금까지 특정 권한이 필요한 이유를 설명해주는 앱들이 더 높은 opt-in 비율을 얻는 경향이 있다는 리서치가 있었습니다.

🤔 opt-in?

- opt-in : 당사자가 개인 데이터 수집을 허용하기 전까지 당사자의 데이터 수집을 금지하는 제도
- opt-in 비율 : 사용자가 개인 데이터 수집을 허용한 비율입니다.

앱이 새로운 사용자에게 온보딩 플로우를 제공한다면, 첫 번째 notification channel 을 만들기 전에 이전에 언급했던 UI 를 표시할 수 있을 것입니다.

새로운 사용자의 관점에서 해당 권한 요청 타이밍이 적절한지 테스트 해봅시다.

권한 요청 테스트하기

알림 권한 기능을 앱에 통합하는 것에 대한 테스트 프로세스를 간소화하는 데 도움이 되는 몇 가지 새로운 adb 명령어가 있습니다!

  1. Android 13 버전을 기기에 설치합니다.
  2. 기기에 adb 를 setup 합니다.
  3. 아래의 adb 명령어를 테스트하고 싶은 시나리오에 따라 실행시킵니다.

알림을 보낼 때에 대한 Best Practice

알림을 보내기 전, 사용 권한 확인

알림을 보내기 전에 사용자가 알림에 대한 권한을 허용했는지 확인해야 합니다.

NotificationManager#areNotificationEnabled() API 를 통해 확인할 수 있습니다.

사용자가 Android 13 으로 기기를 업그레이드 한다면, 해당 API 는 설정 페이지의 알림 전환 외에 알림 권한에 대한 사용자의 응답 또한 반영하게 됩니다.

또한, 권한을 확인하는 것은 권한에 따라 기능이 달라지는 영향 (예를 들면, opt-out 비율) 을 평가하는 데에 도움이 됩니다.

🤔 opt-out? (아까는 opt-in 이었는데? 반대말이라고 생각하시면 됩니다.)
- opt-out : 당사자가 자신의 데이터 수집을 허용하지 않는다고 명시할 때 정보수집이 금지되는 제도
- opt-out 비율 : 사용자가 개인 데이터 수집을 거부한 비율입니다.

권한을 거부했을 때 처리

만약 앱에 알림이 필수적인데 사용자가 알림 권한을 거부하는 경우에는 위에서 언급했던 교육용 UI 를 보여주면서 사용자가 해당 권한을 거부하는 것에 대한 의미를 이해할 수 있도록 적극적으로 도와야 합니다.

채널에 대한 지원

사용자가 앱에서 수신할 알림 유형을 선택하고 (앱의 알림을 완전히 비활성화 하는 것 말고), 알림에 대한 시각적/청각적 행동을 제어할 수 있도록 알림을 채널로 계속해서 분류해야 합니다.

추가적으로, 사용자가 채널에 포함된 알림 유형을 이해하기 쉽도록 채널의 이름과 설명을 유의미하게 작성해야 합니다.

profile
🌱 주니어 안드로이드 개발자 최우영입니다.

0개의 댓글