Closed4
Google IO 2022 メモ
基調講演
いろいろ
- Google マップの新機能Immersive View。場所をそのまま3Dで再現する。エグい。
- Youtubeの自動チャプター生成機能いい感じ。
- Google Docsの自動要約作成機能(TL;DR)
- Google Lensで商品の棚を写すと該当するものが浮かび上がるScene exploration。すごい。
- Monk Skin Tone Scaleという肌の色の新しい尺度を発表。画像補正やコスメ選びに。
- クレジットカード番号をバーチャル番号に置き換えるバーチャルカード機能
Android
- Google Wallet発表
- 学生証なんかも管理できる
- 免許証も
- Large Screen向けの改善類の紹介
- Android13 Betaのリリース
- Pixel6aの紹介
- Google Tensor搭載
- Magic Eracerとかも使える。ものを消したり色を変える
- リアルタイム翻訳も
- Pixel7の紹介
- カメラバーの設置、トリプルカメラ
- Pixel Buds Proの紹介
- アクティブノイズキャンセリング
- 空間オーディオ機能
- 「デバイスを探す」に対応
- Google Pixel Watchの紹介
- FitBitとの連携
- Pixel Tabletの紹介
- Tensor
- 2023年にターゲット
Flutter
What's new in Flutter
- Flutter3リリース
- macOSとLinuxの正式サポート
- SuperlistというアプリがFlutterでデスクトップアプリを開発している。super_editorというリッチなテキストエディタライブラリも紹介。
- Flutter3でApple Siliconにも対応
- canonicalがLinux用のライブラリをめっちゃ作ってる。
- webのheadless mode(新しいデコードAPI?)でアニメーション類の処理速度が向上。現状はchromeのみ対応
- DevToolsにTraceオプション追加で細かいレンダリング時間を見れる。いくつかのレンダリングレイヤーを切ってパフォーマンス低下部分を探ることもできる機能も。Providerのデバッグ機能も追加されるっぽい?
- Android Foldable deviceのサポート
- put-flutter-to-workというadd-to-appのデモサイトっぽいリポジトリができた
- Dart 2.17
- enumにvalueをつけたりmethodつけられる(これすごい嬉しい)
- named args(名前付き引数)を決められた場所ではなく任意の位置に持ってこれる(これも嬉しい)
- 親クラスコンストラクタへの値渡しをsuper.xxという形で省略して書ける(これもでかい)
- FirebaseのFlutterへの正式サポート
- Crashlyticsで細かいログが取れるようになったとか
- Casual Game Toolkit (使ってみたい)
- カジュアルゲームのためのToolKit
- サウンド類も入っている
- Google Mobile Adsも入っている
Learn about Flutter Desktop
- キーボードで使用するケースのために、フォーカスの管理方法について紹介している
- FocusableActionDetectorとか、CallbackShortcutsとか
記事などでちょっと気になったもの
-
公式の記事より
- lintが2.0に対応。Flutter3でcreateしたアプリは2.0に対応する
- Material 3の対応
- いくつかのパフォーマンス改善
Developer Keynote
- ARCore
- Geospatial API の追加。周囲の特徴点を識別して位置を提供。屋外向けかも。
- Compose for Wear OS
- Health Connect
- 健康関連のAPI。FitBitなどと連携
- https://developer.android.com/guide/health-and-fitness/health-connect
- large screens用のガイドライン
- Android Studio
- MultiPreview API (@PreviewDevicesを使う)
- LiveEdit
- Composeの変更がすぐに反映される
- 待ちに待った機能!
- Flutter
- Firebase
- App Quality Insights windows
- Android Studioとリンクして、クラッシュしているところを即座に参照できる
- ハイライトもしてくれる
-
Firebase Extensions
- ソリューションに応じて使えるものがありそう
- App Quality Insights windows
- Google Cloud
- Cloud Run Jobs
- Cloud Runのジョブ実行用
- AlloyDB for PostgreSQL
- 標準のPostgreSQLより4倍以上早い
- Cloud Run Jobs
- 機械学習
Android
What's new
- Fragment Result APIで別のフラグメントにデータを渡す
- LazyLayout (LazyVerticalGrid、LazyHorizontalGrid) 柔軟なリストレイアウト
- Canonical Layoutの実装について
- 入力方法について
- Android13
- Privacy設定、APIについて
- Photo Picker
- 戻る動作の制御について
- バックグラウンド作業の制御について
- CameraX
- ビデオキャプチャの対応
- 拡張APIの提供
- Media
- Jetpack Media3
- 編集なども
- Jetpack Media3
- Google Wallet
- Google Wallet APIの提供
- 認証
- BlockStore
- OneTap
- PassKeys
- Tools
- Macrobenchmark
- JankStats
What's new in Jetpack
- JankStats
- API16以降で使える
- Baseline Profiles
- プリコンパイル時に使用するもの。アプリ起動の高速化が期待できる
- Macrobenchmark
- Tracing
- WindowManager
- ファーストリリースは折りたたみスマホのサポートなど
- DragAndDrop
- API 24から対応
- AppCompat
- Emoji2
- Compose
- Nested Scrolling Interop
- Downloadable font
- Lazy Layout
- Annotation
- Kotlinにマイグレーションした
Lazy layouts in Compose
LazyColumn、LazyRow、LazyGridの説明
- LazyColumn、LazyRow
- padding、spaceの追加方法
- rememberLazyListStateでリストの情報を得る+リストのスクロール操作とか
- LazyGrid
- GridCellの設定はGridCells.fixよりもGridCells.Adaptiveを使うとアダプティブだよ
- calculateCrossAxisCellSizesをoverrideして、セル毎のカラムの幅設定なんかもいける
- itemごとにGridItemSpanを設定することも
- tips
- 0pixelのアイテムを作らないこと
- imageの読み込みとかはデフォ値を入れる
- item内に同じ方向のスクロールするアイテムを入れないこと
- 入れるならサイズを固定値にする
- item 内に複数のtemレイアウトを入れない
- 表示されるが、1つのアイテムとしてカウントされるので、indexの指定がずれちゃう
- Dividerを入れるとかならいい
- custom arrangementsを検討する
- 0pixelのアイテムを作らないこと
- Reuseの仕組み
- contentTypeで異なるitemを区別する
- Prefetchingの仕組み
Performance best practices for Jetpack Compose
- テストはR8有効化してやること
- rememberを使ってsortの管理
- LazyListのitemにuniqueなkeyを入れて、item移動時などにrecomposeを制御
- derivedStateOfでStateが変更した場合のみ反応するようにする
- ただderivedStateOfはなんでもかんでもで使わないほうがいい。変更が多いところだけ
- Procrastination
- drawBehindを使って、色の読み込み時に再composeを防ぐ例
- Running Backward
- forループで毎回composeが発生する例と対策について
- Covering your bases
- Baseline Profilesの説明
What's new in app performance
- Perfetto UI ボトルネック調査など (あんま知らんかった)
- Macrobenchmarkの使い方
- benchmarkビルドを用意して計測する。テストみたいな感じ。
- BaselineProfileの使い方
- txtファイルができる
- Microbenchmarkの使い方
- モジュール作って動かす
- JankStats (まだalpha)
What's new in Android Camera
- CameraX V1.1.0
- Video Captureの使い方について
- Android13
- プレビューの改良
- HDR video
What's new in Android media
- HDR Videoサポート
- Media3 Jetpack libraryでサポート
- HDR Videoを表示するにはSurfaceViewを使う
- Spatial Audio サポート (空間オーディオ、)
- Spatializer classの使い方。
audioManager.spatializer
の使い方
- Spatializer classの使い方。
- ExoPlayer 2.17
- Spatial audioも使える
- MIDI2.0
- Jetpack Media3
- Migration方法も書いてある。ExoPlayerはandroidx.media3になるなど
- Jetpack Core Performance Class (設定制御など)
Introducing Google Wallet and developer api features
- 基本的にはjsonでやり取りするっぽい?
payClient.SavePassesJwt(jwtString, this, ADD_TO_GOOGLE_WALLET)
- onActivityResultで結果を見る
- codelabを見たほうがいいかも
- テンプレートサイト
- SMSやEmailなどでも、JSONをencodeしてパラメータにすればいけるらしい (JWT link)
Overview of Privacy Sandbox on Android
- 主に広告事業向け
- SdkSandboxManagerの説明(SDK Runtime手法)
- Topics APIを使用したパーソナライズ方法
Updates in Fragments
- Fragment Result APIについて
- テスト方法の紹介も
- MenuHost / MenuProvider について
- FragmentStrictMode について
- 地味に
requireParentFragment()
による親FragmentをownerにしたViewModel作成方法tipsもgood
Basics for System Back
- OnBackInvokedCallback について
- Migration方法も紹介
- Android14からはデフォルトになるらしい
- OnBackPressedDispatcher.onBackPressed
- 下位互換性のあるonBackPress?
- OnBackPressedDispatcherのスタックハンドリングについて
- ComposeはBackHandlerを使って制御
- ViewレベルでのBack制御について
Developing privacy user-centric apps
- AppOpsManager.setOnOpNotedCallbackによるデータアクセスのログ化
- 新しいNotification Permissionについて
- POST_NOTIFICATIONS
- ストレージハンドリングについて
- getUsableSpace について
- Android13 targetでREAD_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGEがdeprecatedになる。READ_MEDIA_IMAGESなどの新しいpermissionを使う
- Photo Pickerの説明 (よさそう)
- LOCATION周りのpermissionについて
- Clipboard Notificationについて
What's new in Android developent tools
- BB
- Vector Drawableのアニメーションサポート
- ADB over Wi-Fiサポート
- Chipmunk
- Compose Animation Preview
- Jank Detection
- DolphinやEE
- Android Gradle Pluginのマイグレーション機能
- Build Analyzerのtips
- Jetifierの確認→disable
- Configuration Cacheの有効化
- 「non-transitive Rの有効化」でビルド時間短縮 (+ aliasesで長い名前の防止)
- testOptions
- device configurationの説明
- SDK Managerからダウンロード
- GitHub Actionsで実行してる例
- baseline profileの説明
- ProfilerのJanky framesの説明
- Logcatの色分け
- 物理デバイスの画面をDeviceManagerに写せる!
- エミュレータでBluetooth機能を動かす
- resizeable emulaterの使い方
- Visual Lintについて
- LiveEditについて
- Composeのマルチプレビューのannotationについて
- Composeのアニメーションプレビューについて
- recomposition countについて
このスクラップは2022/07/14にクローズされました