Google I/O Extended 2019
イベント詳細
https://gdg-tokyo.connpass.com/event/128867/
全体的な I/O Android まとめ
Overview of Google I/O 2019 for Android
Kotlin Coroutines
Jetpackの Kotlin Coroutines サポート
特定のスレッドに束縛されない、Coroutinesは 中断可能な計算処理インスタンス
サポートまでの経緯
Androidの非同期処理で使われることが多い
今まで
Apiやデータの加工処理など、メインスレッドでなく別スレッドで実行しなければいけない重い処理
- Thread
- AsynkTask
↓ 辛い....
- RxJava -> なんでもできすぎちゃう
- LiveData -> メインスレッドでしか使えない
↓ もうちょい...!
-
Coroutines ⭐️
-
Update
-
ViewModelScope (jobのキャンセルなどいい感じにやってくれる)
-
LifeCycleScope (LifeCycleに合わせていい感じにやってくれる launchWhenStarted)
-
livedata() ApiなどのレスポンスをLiveDataで返してくれる
-
Room (SQLite Helper)でのsuspend function(中断関数)
-
CoroutineWorker テスト周り
↓
参考
- 公式動画 : Understand Kotlin Coroutines on Android (Google I/O'19)
- Android で簡単コルーチン: viewModelScope
- Use Kotlin coroutines with Architecture components
(LifecycleScope) - [Google I/O 2019] LiveData を Kotlin-Coroutineと一緒に使う
- Room コルーチン
- Threading in CoroutineWorker
非同期処理はKotlin Coroutines ファースト
読みやすい、シンプル、高機能
Android Jetpack
What's new in Jetpack
Kotlin First!
Google、Androidにおける「Kotlinファースト」強化を表明。Google I/O 2019
新しいもの
Benchmark -> シンプルにベンチマークを測れる
CameraX -> カメラを簡単に使う シンプルにかける
Security -> 6.0以降 暗号化ライブラリ 暗号化にまつわるベストプラクティス
SavedState -> アプリ終了後にデータを保持するための仕組み
Jetpack Compose -> ReactやVueなどにインスパイアされたもの。宣言型でUIを構築できる
Android Studio
Google I/O 19 Extended : Quick Recap Android Studio 3.5
Android Studio 3.5 beta
https://android-developers.googleblog.com/2019/05/android-studio-35-beta.html
- Project Marble
6ヶ月の定期的なAndroid Studioアップデートプロジェクト
↓記事になっている
https://medium.com/androiddevelopers/tagged/project-marble
Googleは当初から、安定性に課題感を持っていた (誰でも、ビルドエラーやクリーンビルド、データバインディングのエラーには直面したことがある)
ビルド速度の改善 -> パーサー
エラー個所を特定しやすく
Incremental Build
Apply Change
インスタントラン機能の廃止
デルタプッシュ(差分送信) Android Oreo以降
Emulatorの実行速度改善
ヘッドレスモード
dataBindingのビルドエラー改善
レイアウトエディタ
ConstraintsLayoutエディターが、よりわかりやすく
デザインデータ
バッジインポート / バルクインポート
カラーピッカーとインスペクタ
実機操作と連動する
インスペクタの3Dレイヤー表示
常に、最新を使うように
Firebase
-
Firebase Crashrytics Big Query Support
ベロシティアラートの閾値を設定できるようになった
performance Monitoring -> Webにも! -
Firebase Test Lab
Wear / App Bundle / Android Qに対応 -
Firebase Authentication
Blocking function
Android Q (Beta)
プライバシー
ダーク テーマ
ジェスチャー ナビゲーション
Bubbles
共有の改善
Privacy
Android Qプライバシーチェックリスト
https://developer.android.com/preview/privacy/checklist?hl=ja
Dark Theme
style別で用意
themeで別設定
無理矢理も可能 -> forceDarkAloud
Gesture Navigation
新たなUI操作
d.android.com/preview/features/gesturalnav
edge-to-edge
下のナビゲーション バーと 上のステータスバーを透明にする
Bubbles
通知。丸を押すと、Activityがひらく。NotificationBuilderで使う
ユーザーがOptoutした場合普通の通知になる
Sharing
https://developer.android.com/preview/features/sharing
Settings Panel
https://developer.android.com/reference/android/provider/Settings.Panel
Flutter
v1.5が発表
https://developers.googleblog.com/2019/05/Flutter-io19.html
Material Theming
アプリのTheme(デザイン)をマテリアルデザインで実現するためのクラス群
DarkMode
シンプルに対応できそうな印象
Sliderカスタマイズ
natural language Labeling
Cupertino
iOS風ウィジェットも充実
https://flutter.dev/docs/development/ui/widgets/cupertino
Desktop App作れる
- Chrome OS
- macOS
- Linux
- Windows
Flutter for Web
- アプリのようなUI
- インタラクティブ性が高く、グラフィックスを多用したもの
Google、「Flutter for Web」発表。FlutterからWebアプリを生成。Flutterはマルチプラットフォーム対応のフレームワークに。Google I/O 2019
Dart
Announcing Dart 2.3: Optimized for building user interfaces
- Productive
- Fast
- Multi-platform
DartはVM上で動くため、hot-reloadなどを含め、開発効率が高い