Flutterの画像取得とpermissionについて

6b2357dfc0a9a9c5e6f5c1f2d6e60beb?s=47 txmn
October 17, 2018
870

 Flutterの画像取得とpermissionについて

Flutterでは、Androidであればimage_pickerだけで完結するが、iOSではimage_pickerだけでは完結しない。Permissionを考慮する必要がある。

6b2357dfc0a9a9c5e6f5c1f2d6e60beb?s=128

txmn

October 17, 2018
Tweet

Transcript

  1. 画像取得とpermission Flutter Meetup Tokyo #5 @_txmn

  2. About Me 普段はサーバーサイドエンジニアで、趣味でFlutterのアプリを開発しています。 @_txmnというIDでTwitterやっています。(Fortniteフレンド募集中です!) 前回のFlutter Meetup Tokyo #4では「FlutterのBottom Navigation による画面遷移に

    ついて」というトピックで初心者枠でLTさせていただきました。 本日はimage_pickerの特にiOSのpermissionの取得の必要性ついてお話します。
  3. よくある画像を取得する 機能を作りたい

  4. 画像の取得自体は、image_picker(flutter/plugins/packages/image_picker)で、 カメラorギャラリーから簡単に取得できる。 備え付けのimage_pickerで簡単に取得

  5. Androidであれば image_pickerだけで完 結するが、、、

  6. iOSではimage_pickerだ けでは完結しない。 Permissionを考慮する 必要がある。

  7. Permissionのタイミング Androidの場合 iOSの場合 インストール時に承諾 機能を最初に使うときに聞 かれる OS

  8. Permissionのタイミング Androidの場合 iOSの場合 インストール時に承諾 機能を最初に使うときに聞 かれる OS

  9. Permissionのタイミング Androidの場合 iOSの場合 インストール時に承諾 機能を最初に使うときに聞 かれる OS 最初に聞かれるとき 例 (間違えるor条件反射的に拒否してしま

    うときがあるかもしれない)
  10. Permissionのタイミング Androidの場合 iOSの場合 インストール時に承諾 機能を最初に使うときに聞 かれる OS 最初に聞かれるとき 拒否した場合 例えば、カメラの

    permissionが拒否されて も、image_pickerのカメラ の起動自体は出来るが 真っ黒でなにも写されない し、自動でPermissionのリ クエストがされることもな い。 例 (間違えるor条件反射的に拒否してしま うときがあるかもしれない)
  11. Permissionのタイミング Androidの場合 iOSの場合 インストール時に承諾 機能を最初に使うときに聞 かれる OS 最初に聞かれるとき 拒否した場合 例えば、カメラの

    permissionが拒否されて も、image_pickerのカメラ の起動自体は出来るが 真っ黒でなにも写されない し、自動でPermissionのリ クエストがされることもな い。 →Permissionをチェックし て遷移を考える必要があ る。 例 (間違えるor条件反射的に拒否してしま うときがあるかもしれない)
  12. 自前でPluginを作成しても良いが、すでにいくつかOSSで存在する。 ex) Ethras/flutter_simple_permissions (スター数69) どうやってPermissionをチェックするか

  13. 自前でPluginを作成しても良いが、すでにいくつかOSSで存在する。 ex) Ethras/flutter_simple_permissions (スター数69) ↑こんな感じで簡単に判別可能。アプリ固有の設定画面への遷移メソッドもある。後はUI を組むだけ。 どうやってPermissionをチェックするか

  14. iOSの画像取得とpermissionの遷移例 ImagePicker.pickImage カメラ起動 OK Don’t Allow 初回時

  15. iOSの画像取得とpermissionの遷移例 ImagePicker.pickImage カメラ起動 OK Don’t Allow SimplePermissions.checkPermission(...) 初回時 以降 true

    ImagePicker.pickImage カメラ起動 SimplePermissions.openSettings(); False 設定画面
  16. ご静聴 ありがとうございました。