Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cybozu Android Dev Summit 2022 LT会 - Something about storage on Android
Search
SiLeader
November 29, 2022
Programming
0
670
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
Share
More Decks by SiLeader
See All by SiLeader
Cybozu Google I/O 2023 LT会 - WebAssembly
sileader
0
550
Other Decks in Programming
See All in Programming
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.1k
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
110
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.3k
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
130
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
120
ONE WEDGE_company_guide
1wedge_one
0
470
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
23
15k
Milestoner
bkuhlmann
1
410
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
244
20k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
Fireside Chat
paigeccino
21
2.6k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
Web development in the modern age
philhawksworth
202
10k
The Brand Is Dead. Long Live the Brand.
mthomps
49
28k
RailsConf 2023
tenderlove
4
540
XXLCSS - How to scale CSS and keep your sanity
sugarenia
241
1.2M
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
21
1.6k
Atom: Resistance is Futile
akmur
259
25k
Transcript
Something about storage on Android™ Everything about storage on Android
https://youtu.be/jcO6p5TlcGs
ストレージの種類 内部ストレージ 外部ストレージ (Micro SD) • 他のアプリから隔てられている • 機密データの保持が可能 •
必ず存在する • サイズ制限が厳しいかもしれない • 機密データの保持はできない • 存在の確認が必要 • サイズ制限は厳しくない アプリ専⽤ ストレージ 共有ストレージ • 他アプリと共有するファイル • メディアやドキュメント • MediaStoreによる効率的なアクセス ⾃動的に削除
ストレージAPIの更新 • Scoped Storage • READ_EXTERNAL_STORAGE権限があればメディアファイルにアクセス可能 • メディアファイル: 画像、動画、オーディオファイルなど •
ドキュメントファイルはDocument pickerを介してアクセスが必要 • ドキュメントファイル: PDF、DOCXなど • Document Picker • ドキュメントファイルへのアクセスを提供 (SAFを使⽤) • ユーザーがファイルごとにアクセスを許可を制御可能 • WRITE_EXTERNAL_STORAGEの⾮推奨化 • MediaStore経由でファイルの書き込みが可能なため追加の権限は不要 • メディアファイルの位置情報が読めないようになった • この情報を読むために追加でACCESS_MEDIA_LOCATION権限が必要になった Android 10+
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")))
プライバシーと透過性 • Androidではプライバシーと透過性が⼤幅に改善 • Photo pickerなどのUXも強化 • 権限が不要なAPIの追加 • アプリで追加で許可を得る必要をなくす
• ユーザーがアクセス許可を制御できる
出典と帰属 出典 • Everything about storage on Android • YouTube:
https://youtu.be/jcO6p5TlcGs • Photo picker • https://developer.android.com/training/data-storage/shared/photopicker 帰属 AndroidはGoogle LLCの商標です