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

Cybozu Android Dev Summit 2022 LT会 - Something about storage on Android

SiLeader
November 29, 2022

Cybozu Android Dev Summit 2022 LT会 - Something about storage on Android

元の動画
Everything about storage on Android
https://youtu.be/jcO6p5TlcGs

SiLeader

November 29, 2022
Tweet

More Decks by SiLeader

Other Decks in Programming

Transcript

  1. Something about storage on Android™
    Everything about storage on Android
    https://youtu.be/jcO6p5TlcGs

    View Slide

  2. ストレージの種類
    内部ストレージ 外部ストレージ
    (Micro SD)
    • 他のアプリから隔てられている
    • 機密データの保持が可能
    • 必ず存在する
    • サイズ制限が厳しいかもしれない
    • 機密データの保持はできない
    • 存在の確認が必要
    • サイズ制限は厳しくない
    アプリ専⽤
    ストレージ
    共有ストレージ
    • 他アプリと共有するファイル
    • メディアやドキュメント
    • MediaStoreによる効率的なアクセス
    ⾃動的に削除

    View Slide

  3. ストレージAPIの更新
    • Scoped Storage
    • READ_EXTERNAL_STORAGE権限があればメディアファイルにアクセス可能
    • メディアファイル: 画像、動画、オーディオファイルなど
    • ドキュメントファイルはDocument pickerを介してアクセスが必要
    • ドキュメントファイル: PDF、DOCXなど
    • Document Picker
    • ドキュメントファイルへのアクセスを提供 (SAFを使⽤)
    • ユーザーがファイルごとにアクセスを許可を制御可能
    • WRITE_EXTERNAL_STORAGEの⾮推奨化
    • MediaStore経由でファイルの書き込みが可能なため追加の権限は不要
    • メディアファイルの位置情報が読めないようになった
    • この情報を読むために追加でACCESS_MEDIA_LOCATION権限が必要になった
    Android 10+

    View Slide

  4. Photo picker
    • 写真などのメディアファイルを権限なしに選択
    • ⾃動的に更新されるためコードの変更は不要
    Android 11 (API Level 30)+
    ファイルの選択
    val picker = rememberForActivityResult(PickVisualMedia()) { uri ->
    if (uri != null) {
    selectedFiles.add(uri)
    }
    }
    picker.launch(PickVisualMediaRequest(PickVisualMedia.ImageAndVideo))
    ファイル種類の指定
    // 画像のみ
    picker.launch(PickVisualMediaRequest(PickVisualMedia.ImageOnly))
    // 動画のみ
    picker.launch(PickVisualMediaRequest(PickVisualMedia.VideoOnly))
    // MIMEタイプで指定
    picker.launch(PickVisualMediaRequest(PickVisualMedia.SingleMimeType("image/png")))

    View Slide

  5. プライバシーと透過性
    • Androidではプライバシーと透過性が⼤幅に改善
    • Photo pickerなどのUXも強化
    • 権限が不要なAPIの追加
    • アプリで追加で許可を得る必要をなくす
    • ユーザーがアクセス許可を制御できる

    View Slide

  6. 出典と帰属
    出典
    • Everything about storage on Android
    • YouTube: https://youtu.be/jcO6p5TlcGs
    • Photo picker
    • https://developer.android.com/training/data-storage/shared/photopicker
    帰属
    AndroidはGoogle LLCの商標です

    View Slide