Google Play APP DOJO #38 に参加してきた
Google Play APP DOJO #38に参加してきたので、その内容を自分なりにまとめてみました。
テーマは、「Android Q 新機能詳細 -ダークテーマから共有機能まで-」です。
概要
Google I/O 2019で発表されたAndroid関連のアップデートについて
Android Q
YouTubeにプレイリストあり。
Android @ Google I/O 2019
現在、「Android Q Beta 4」が出ている(API Level 29)
プライバシー
Android Q privacy checklist | Android Developers
位置情報
バックグラウンドでの利用権限が分離され、バックグラウンド時には別のパーミッション「ACCESS_BACKGROUND_LOCATION」が必要になる。
Scoped Storage
/sdcard以下へのアクセス制限が以下の通りに変更される。
- 自分のファイルはアクセスできる
- 写真・音声・動画はMediaStoreでアクセス
- 他のアプリが作ったファイルはDocumentsProvider(Intent.ACTION_OPEN_DOCUMENT)でアクセス
位置情報へのアクセスには「ACCESS_MEDIA_LOCATION」権限が必要。
Android R(Qの次のOS)になった時、FileSystemでアクセスできなくなるらしい。
その他の変更
- バックグラウンドからユーザの操作なしにUI起動できない
- カメラの情報を取得するのにもカメラの権限が必要
- バックグラウンドからクリップボードへのアクセス禁止
- etc
ダークテーマ
システムの設定でダークテーマの切り替えが可能になった。
対応方法
DayNight
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
...
</style>
-night
<style name="AppTheme" parent="Theme.MaterialComponents.Light">
...
</style>
<style name="AppTheme" parent="Theme.MaterialComponents">
...
</style>
Force Dark
<style name="AppTheme" parent="Theme.MaterialComponents.Light">
<item name="android:forceDarkAllowed">true</item>
</style>
一部を除外
<xxxView
...
android:forceDarkAllowed
...
/>
注意事項
色をlayout.xml上でベタ書きしていると、ダークモードにしたときにうまくいかないことがあるかもしれない。
colorPrimaryに設定しておけば、テーマの切り替えで対応が可能。
その他
Android Q未満でも、AppCompatを利用すればダークテーマに対応はできる。
だからといって特に対応する必要はない。
Gesture Navigation
Android Qから完全ジェスチャーモードが加わった。
Android R移行時、完全ジェスチャーモードのみになるかも。
とはいえ、DrawerLayoutは無くならないと思われる。
ただ、Gesture Navigationが入った時にどういう挙動になるかは確認したほうがいい。
Bubbles
他のアプリの上に描画する機能。(Facebook Messengerなどで利用されている)
これをSYSTEM_ALERT_WINDOWというが、これを無くしたいがためにBubblesが誕生した。
SYSTEM_ALERT_WINDOWでは、たくさんアプリが起動してしまうため、低スペックのアプリには厳しい。
Android Qでは、ユーザ向けの機能にはならない。
この機能はあくまでPreview Releaseである。
開発オプションの中で有効にすれば使える。
Sharing
マシュマロでDirect Shareができたが、不評であった。
(Direct Shareに関しては以下参照)
Direct Shareを試してみる - Qiita
今回のバージョンアップにより改善された。
Settings Panel(Android Qでしか使えない)を使えばよりGood。
Jetpack 最新情報
以下にバージョン一覧がある。
AndroidX Versions | Android Developers
LiveData(KTX)
Android KTXによって、よりKotlinらしく書くことができる。
LiveData Overview | Android Developers
ViewModel(KTX)
Android KTXによって(ry
ViewModel Overview | Android Developers
DataBinding
Data Binding Library | Android Developers
Android Studio 3.5
- ビルドが20%高速化
- XMLとコード間の即時連携
- インクリメンタルアノテーションプロセッサー(プレビュー)
View Binding(Android Studio 3.6から)
- DataBindingと同様、ただし値のバインディングはしない
- findViewByIdの置き換え
- 型安全、早い
Savedstate
Savedstate | Android Developers
Android 1からある機能。
アクティビティの現在の状態を覚えておくもの。
ViewModelで十分に思えるが、「プロセスが殺されてしまった場合にデータが削除されてしまう」問題があり、それを解消できる。(プロセスが殺されてもデータが保持される)
WorkManager
Schedule tasks with WorkManager | Android Developers
2.2(alpha)
- パフォーマンス・互換性の向上
- Robolectric test、Unit test
予定
- ForegroundでもWorkManager APIが使えるように
Room
Room Persistence Library | Android Developers
2.1(alpha)
- コルーチン(suspend)
- 全文検索
- ビュー(DatabaseView)
予定
- インクリメンタルアノテーションプロセッサー
- Relationの強化
- マイグレーションを簡単に
- コルーチンChannelとFlow
Paging
Paging library overview | Android Developers
予定
- ネットワークから取得するのを簡単にする
- ヘッダー・フッター
- RxJavaサポート
Navigation
Navigation | Android Developers
2.1(alpha)
- スコープ
- URIによるナビゲーション
- ダイアログフラグメントのサポート
予定
- Dynamic featureのサポート
CameraX
CameraX の概要 | Android Developers
Camera機能のこれまで
Camera APIは非推奨となり、単純な機能・単純なAPIしかできない。
Camera2 APIで高機能、低水準なAPI(ハードウェアに近い)が用意されたが、マニアックすぎて敷居が高いのがネック。
CameraXとは
カメラを利用するアプリに必要な機能を使いやすいAPIであり、API Level 21まで後方互換性がある。
実行時権限は扱わない。
その他の機能
- プレビューに対する顔認識
- Firebaseとの連携
- Extension Camera2 APIを使って機能を拡張
- さらに簡単なAPIを目指し中
Benchmark
Benchmark app code | Android Developers
インストゥルメンタルテストの中でベンチマークを取る。
CIでアプリやライブラリのパフォーマンスを継続的に監視したい時に利用。
何をBenchmarkするか
- ただ単に遅いコードを早くしたいとき
- 継続的に一定のパフォーマンスを保証したい時
Security
比較的簡単に導入ができる。
EncryptedFileやEncryptedSharedPreferencesがある。
簡単にファイルを暗号化できる。
しかも、暗号化のキーは端末から取り出すことができない。
ぜひ読んで欲しい記事
Google Developers Japan: アプリの品質を改善してGoogle Play で見つけてもらいやすくする
Author And Source
この問題について(Google Play APP DOJO #38 に参加してきた), 我々は、より多くの情報をここで見つけました https://qiita.com/hiesiea/items/8447130ef9480335bcd2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .