Closed4

Google IO 2022 メモ

alpha2048alpha2048

基調講演

いろいろ

  • 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年にターゲット
alpha2048alpha2048

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の対応
    • いくつかのパフォーマンス改善
alpha2048alpha2048

Developer Keynote

  • ARCore
    • Geospatial API の追加。周囲の特徴点を識別して位置を提供。屋外向けかも。
  • Compose for Wear OS
  • Health Connect
  • large screens用のガイドライン
  • Android Studio
    • MultiPreview API (@PreviewDevicesを使う)
    • LiveEdit
      • Composeの変更がすぐに反映される
      • 待ちに待った機能!
  • Flutter
  • Firebase
    • App Quality Insights windows
      • Android Studioとリンクして、クラッシュしているところを即座に参照できる
      • ハイライトもしてくれる
    • Firebase Extensions
      • ソリューションに応じて使えるものがありそう
  • Google Cloud
    • Cloud Run Jobs
      • Cloud Runのジョブ実行用
    • AlloyDB for PostgreSQL
      • 標準のPostgreSQLより4倍以上早い
  • 機械学習
alpha2048alpha2048

Android

What's new

  • Fragment Result APIで別のフラグメントにデータを渡す
  • LazyLayout (LazyVerticalGrid、LazyHorizontalGrid) 柔軟なリストレイアウト
  • Canonical Layoutの実装について
  • 入力方法について
  • Android13
    • Privacy設定、APIについて
    • Photo Picker
    • 戻る動作の制御について
    • バックグラウンド作業の制御について
  • CameraX
    • ビデオキャプチャの対応
    • 拡張APIの提供
  • Media
    • 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を検討する
  • 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の使い方
  • 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

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にクローズされました