Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Accompanistから考えるAndroidの権限許諾

 Accompanistから考えるAndroidの権限許諾

Mikami Hiroki

August 21, 2023
Tweet

More Decks by Mikami Hiroki

Other Decks in Technology

Transcript

  1. Permissions for Jetpack Compose [4] Permissions for Jetpack Compose, https://github.com/google/accompanist/tree/main/permissions

    • ComposeでAndroidのruntime permissonを扱うライブラリ ◦ v0.24.2-alpha で大きな変更があるため注意
  2. Runtime permissions のつらいところ • 考えることが多い • 2回連続で拒否された場合、OS標準の 許諾ダイアログが表示されなくなる※ ◦ 設定画面に遷移する必要

    ◦ 完全な拒否の状態を検知する標準 のAPIがない ※ 完全な拒否と呼ばれる。 Android 10以下では「今後表示しない」にチェックをつけた状態で拒否
  3. Permissions for Jetpack Compose の特徴 • ライブラリのpublicな コード量が少ない • シンプルに記述できる

    完全な拒否の考慮が不十分 (上手くハンドリングが行う方法がない)
  4. [6] [Permissions] Support an API to handle the "need settings"

    for permission #1363, https://github.com/google/accompanist/issues/1363 完全な拒否をAccmpanistでハンドリ ングしたいという提案
  5. 1回目のリクエスト • 許諾されていない & shouldShowRationaleがfalse • 拒否されても後がある ◦ OS標準の権限ダイアログを呼び出す •

    権限が必要な理由は極力示すと良さそう ◦ ダイアログで根拠を示す場合など冗長になることが ◦ 位置情報の権限で正確な位置情報がほしいが おおよその位置情報が許諾されてしまうケース
  6. 1度拒否された場合のリクエスト • 許諾されていない & shouldShowRationaleがtrue • 拒否されたら後がない ◦ 設定画面に誘導 •

    権限が必要な理由を示すのは必要 ◦ 設定画面に誘導するために説明があった方が ユーザーに親切
  7. References 1/2 • [1] Types of permissions, https://developer.android.com/guide/topics/permissions/overview#types • [2]

    Request runtime permissions, https://developer.android.com/training/permissions/requesting • [3] Accompanist, https://github.com/google/accompanist • [4] Permissions for Jetpack Compose, https://github.com/google/accompanist/tree/main/permissions • [5] https://github.com/google/accompanist/blob/main/sample/src/main/java/com/google/accompanist/s ample/permissions/RequestPermissionSample.kt • [6] [Permissions] Support an API to handle the "need settings" for permission #1363, https://github.com/google/accompanist/issues/1363
  8. References 2/2 • [7] https://github.com/google/accompanist/issues/1363#issuecomment-1383769143 • [8] [Permissions] [Idea] Support

    Android 12 handling of coarse/fine location permission #819, https://github.com/google/accompanist/issues/819 • [9] Request runtime permissions, https://developer.android.com/training/permissions/requesting
  9. CREDITS: This presentation template was created by Slidesgo, including icons

    by Flaticon, infographics & images by Freepik. Thanks!