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
Android 10 対応 Tips
Search
katsuki-nakatani
February 16, 2020
Technology
0
110
Android 10 対応 Tips
Android 10(target sdk version 29)に対応したときに考慮したことをご紹介します
katsuki-nakatani
February 16, 2020
Tweet
Share
More Decks by katsuki-nakatani
See All by katsuki-nakatani
InAppUpdate実装&InAppBillingClientVer2.0実装例
katsukinakatani
0
590
AndroidJetpack概要 &旧AACの紹介
katsukinakatani
0
680
ViewModel使ってますか?
katsukinakatani
0
320
デフォルトアプリとパーミッション
katsukinakatani
0
220
Target SDK Version 26に上げる時につまづいたこと
katsukinakatani
3
2.8k
Whats new android wear (umeda.apk #3 LT)
katsukinakatani
1
500
Android 7.1.1 AppShortcuts setup(DevfestKansai Lightning Talk)
katsukinakatani
1
700
Firebase Authentication & Firebase Realtime Database setup
katsukinakatani
2
900
Firebase Setup for Android Studio2.2
katsukinakatani
1
630
Other Decks in Technology
See All in Technology
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
480
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
180
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
360
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
600
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
250
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
140
Cosmos World Foundation Model Platform for Physical AI
takmin
0
950
Greatest Disaster Hits in Web Performance
guaca
0
280
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
130
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
190
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
500
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
The Cult of Friendly URLs
andyhume
79
6.8k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
Paper Plane (Part 1)
katiecoart
PRO
0
4.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
[SF Ruby Conf 2025] Rails X
palkan
1
760
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Transcript
Android 10 対応 Tips GDGミートアップ in 京都 #2
Speaker 中谷 克紀(Katsuki Nakatani) Works Enterprise Server Engineer GDG 神戸スタッフ( GDG
kobe staff) Twitter @KatsukiNakatani my hobby
Android 10 2019/9 release Pixelシリーズを皮切りに、 EssentialPhoneなどにも順次リリース SDK Version 29
changes in Android 10 ・Gesture Navigation ・Dark Theme ・Location Permisison(use
foreground only or full supported) ・External Storage Security ・Supported Foldable device ・Role
さて、今日の本題 Androidアプリを 10に対応するのに必要なこと この電話アプリを更新したときに対応したことのことを お話しようと思います
my app implemented ・Gesture Navigation ・Dark Theme ・GPS権限の細分化(アプリ使用中のみ・バックグラウンドでも利用可能など) ・外部ストレージのセキュリティ強化 ・フォルダブルデバイスのサポート
・RoleManager
Gesture Navigation Android10での大きな変更点で、 「戻る」の動作が、画面端からのスワイプに割り当てられている 一番影響が大きいと感じたのが NavigationDrawer
Gesture Navigation ・対策1・・・Twitterのようにセーフエリアを決めて 動作するエリアを制限する Gestureに反応しないエリア
Gesture Navigation ・対策2・・・Navigation Drawerをやめる
Gesture Navigation 個人的に、「どうしてもNavigationDrawerが必要」で無いのであれば NavigationDrawerは使わないほうが無難 ※結局セーフエリアを作ってもユーザーの感覚で期待したエリアで期待した動作を しない場合はフラストレーションが溜まる
Dark Theme ・Android 9 ナビゲーションバーやQuickPanelなどの一部のみ変更される ・Android 10 システム画面や、各アプリなど全体的に変更される
What are you happy about? ・Battery friendly ・目に優しい、疲れにくい 実装してみましょう
EASY
Whats 「DayNight」? https://github.com/material-components/material-components-android/tree/master/lib/java/com/google/android/material/theme/res values-night/themes_daynight.xml <style name="Theme.MaterialComponents.DayNight" parent="Theme.MaterialComponents"/> <style name="Theme.MaterialComponents.DayNight.DarkActionBar" parent="Theme.MaterialComponents"/>
<style name="Theme.MaterialComponents.DayNight.NoActionBar" parent="Theme.MaterialComponents.NoActionBar"/> <style name="Theme.MaterialComponents.DayNight.DialogWhenLarge" parent="Theme.MaterialComponents.DialogWhenLarge"/> values/themes_daynight.xml <style name="Theme.MaterialComponents.DayNight" parent="Theme.MaterialComponents.Light"/> <style name="Theme.MaterialComponents.DayNight.DarkActionBar" parent="Theme.MaterialComponents.Light.DarkActionBar"/> <style name="Theme.MaterialComponents.DayNight.NoActionBar" parent="Theme.MaterialComponents.Light.NoActionBar"/> <style name="Theme.MaterialComponents.DayNight.DialogWhenLarge" parent="Theme.MaterialComponents.Light.DialogWhenLarge"/>
Dark Theme ・DarkモードとLightモードでリソースを変更する 同じようにvalue-nightディレクトリを利用する
Sample
Dark Theme ・ダークテーマを実装するには、 DayNightテーマと-nightディレクトリを活用する ユーザーレビューを見る限り、ダークテーマへの対応は 結構好感度が高い気がするので、ぜひ実装を
Role Manager Android 9 まではデフォルトアプリと呼ばれていたもの (10でも画面は変わらず )
Role Manager デフォルトアプリって何がうれしい? ・本来触れない特権系のパーミッションへアクセスができる ・ダイヤラ―だと、
Role Manager 自分がその機能のデフォルトに設定されているかどうか (getSystemService(Context.TELECOM_SERVICE) as TelecomManager).let { TextUtils.equals(it.defaultDialerPackage, packageName) }
(getSystemService(Context.ROLE_SERVICE) as RoleManager).let { it.isRoleAvailable(RoleManager.ROLE_DIALER) && it.isRoleHeld(RoleManager.ROLE_DIALER) } Android 6.0 〜 Android9.0 Android 10
Role Manager 自分がその機能をデフォルトにセットしたい (Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER).apply { putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, packageName) } (getSystemService(Context.ROLE_SERVICE) as
RoleManager).createRequestRoleIntent(RoleManager.ROLE_DIALER) Android6.0 〜 Android 9 Android 10
Role Manager Android 10 未満 Android 10
Role Manager Android 10からはデフォルトアプリの扱いが「 Role」になっているので、実装している人は RoleManagerに変更しよう SDKバージョンを上げた状態で、旧来の「 ACTION_CHANGE_DEFAULT_DIALER」Intentを呼び出 しても何も発生しないので、リリース前には絶対にチェックしよう!
Role Manager
Role Manager Compat
まとめ 今回は、Android 10対応に際して行った幾つかの対応について紹介をしました TargetSDKを上げ続けないと、ストアでの掲載が難しくなる昨今なので、少しずつ対 応しましょう。
ご清聴ありがとうございました GDG神戸のDoorKeeperにもぜひご登録ください https://gdgkobe.doorkeeper.jp/