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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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

Avatar for Mikami Hiroki

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!