Slide 1

Slide 1 text

#potatotips ©2024 RAKUS Co., Ltd. App Targeting Android 15 Overview potatotips #87 iOS/Android開発Tips共有会 2024/04/26 @akkiee76

Slide 2

Slide 2 text

#potatotips ● Akihiko Sato ● Mobile & Backend Engineer ● 𝕏 : @akkiee76 ● Speaker Deck : @akkie76 自己紹介 2

Slide 3

Slide 3 text

#potatotips Android 15 beta Release 🎉 3

Slide 4

Slide 4 text

#potatotips 今回のテーマ Android 15 をターゲットする アプリの変更点の概要を紹介 🚀 4

Slide 5

Slide 5 text

#potatotips 注意点 今後のリリースで 機能が変更になる可能性があります ⚠ 5

Slide 6

Slide 6 text

#potatotips Overview 1. Core functionality 2. User experience 3. Updated non-SDK restrictions 4. Camera and media 6

Slide 7

Slide 7 text

#potatotips Overview 1. Core functionality 2. User experience 3. Updated non-SDK restrictions 4. Camera and media 7

Slide 8

Slide 8 text

#potatotips Core functionality 1. Changes to foreground services 2. Key management for end-to-end encryption 8

Slide 9

Slide 9 text

#potatotips Changes to foreground services ● mediaProcessing の追加 ● BOOT_COMPLETED の制限 ○ dataSync, camera, mediaPlayback, phoneCall mediaProjection, microphone の起動時に ForegroundServiceStartNotAllowedException が throw 9 サービスによっては注意が必要 ⚠

Slide 10

Slide 10 text

#potatotips Key management for end-to-end encryption ● E2eeContactKeysManager の導入 ○ 暗号化公開キーを保存するための OS レベルの API を提 供することで、Android アプリでの end-to-end の 暗号化 (E2EE) が容易に 10 具体的なAPIの使い方は今後のアップデートに期待

Slide 11

Slide 11 text

#potatotips Overview 1. Core functionality 2. User experience 3. Updated non-SDK restrictions 4. Camera and media 11

Slide 12

Slide 12 text

#potatotips User experience 1. Window inset changes 2. elegantTextHeight attribute 12

Slide 13

Slide 13 text

#potatotips Window inset changes ● target SDK 35 & Android 15+ devices ○ edge-to-edge が強制化される ⚠ 13

Slide 14

Slide 14 text

#potatotips 14 targetSdk 34 & Android 15 devices targetSdk 35 & Android 15 devices https://developer.android.com/about/versions/15/behavior-changes-15?hl=en#edge-to-edge_enforcement

Slide 15

Slide 15 text

#potatotips 15 targetSdk 34 & Android 15 devices targetSdk 35 & Android 15 devices https://developer.android.com/about/versions/15/behavior-changes-15?hl=en#edge-to-edge_enforcement insetsを最適化する必要がある

Slide 16

Slide 16 text

#potatotips 16 targetSdk 34 & Android 15 devices targetSdk 35 & Android 15 devices https://developer.android.com/about/versions/15/behavior-changes-15?hl=en#edge-to-edge_enforcement insetsを最適化する必要がある

Slide 17

Slide 17 text

#potatotips Window inset changes ● edge-to-edge に対応済み ○ 全画面での検証が推奨 ● edge-to-edge に未対応 ○ M3 Component の一部利用 ○ insets を個別に修正 17 各画面のテスト & レイアウト修正が必要 ⚠

Slide 18

Slide 18 text

#potatotips elegantTextHeight attribute ● TextView で default が true になる ● font の垂直方向のメトリクスが補正 ● compact fontは今後もサポートされるか未定 ○ Arabic, Lao, Myanmar, Tamil, Gujarati, Kannada, Malayalam, Odia, Telugu, Thai は要テスト 18 targetSdk 34 以下 targetSdk 35

Slide 19

Slide 19 text

#potatotips Overview 1. Core functionality 2. User experience 3. Updated non-SDK restrictions 4. Camera and media 19

Slide 20

Slide 20 text

#potatotips Updated non-SDK restrictions ● non-SDK interface の制限強化 ○ public interface で代替可能な手段を検討 ○ 他の SDK へ移行を検討 ○ developer に public API のリクエストを行う 20 non-SDK interface の利用はなるべく避ける ⚠

Slide 21

Slide 21 text

#potatotips Overview 1. Core functionality 2. User experience 3. Updated non-SDK restrictions 4. Camera and media 21

Slide 22

Slide 22 text

#potatotips Camera and media ● audio focus のリクエスト制限 ○ リクエス要求時は Top App もしくは foreground service での実行が要件 ○ 要件を満たせない場合AUDIOFOCUS_REQUEST_FAILED が返却 22

Slide 23

Slide 23 text

#potatotips まとめ Android 15 対応では、特に以下の懸念事項について 検証し影響範囲を確認しましょう 🚀 ● foreground services の見直し ● edge-to-edge による UI 崩れ ○ VRT など検知できる仕組みがあると Better 23

Slide 24

Slide 24 text

#potatotips Thank you 🙏 24