Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Android 10 対応 Tips
Search
katsuki-nakatani
February 16, 2020
Technology
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Android 10 対応 Tips
Android 10(target sdk version 29)に対応したときに考慮したことをご紹介します
katsuki-nakatani
February 16, 2020
More Decks by katsuki-nakatani
See All by katsuki-nakatani
InAppUpdate実装&InAppBillingClientVer2.0実装例
katsukinakatani
0
630
AndroidJetpack概要 &旧AACの紹介
katsukinakatani
0
730
ViewModel使ってますか?
katsukinakatani
0
340
デフォルトアプリとパーミッション
katsukinakatani
0
230
Target SDK Version 26に上げる時につまづいたこと
katsukinakatani
3
2.9k
Whats new android wear (umeda.apk #3 LT)
katsukinakatani
1
520
Android 7.1.1 AppShortcuts setup(DevfestKansai Lightning Talk)
katsukinakatani
1
720
Firebase Authentication & Firebase Realtime Database setup
katsukinakatani
2
920
Firebase Setup for Android Studio2.2
katsukinakatani
1
640
Other Decks in Technology
See All in Technology
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
4
740
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
150
EventBridge に「合流」はない ― サーバーレスのワークフローを育てるということ / No Join in EventBridge
yusukeshimizu
2
550
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
5
1.2k
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
1
580
GitHub Agentic Workflows を触ってみる
htkym
2
630
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
610
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.8k
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
650
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
320
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
1
190
What the customer really needed
kawaguti
PRO
3
230
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
550
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
4 Signs Your Business is Dying
shpigford
187
23k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
730
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
560
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Marketing to machines
jonoalderson
1
5.8k
Building an army of robots
kneath
307
46k
WENDY [Excerpt]
tessaabrams
14
39k
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/