Closed6

Google IO 2023 メモ

alpha2048alpha2048

日本時間深夜から開始なので当日視聴はできませんが、あとで気になったものを少しずつ追加していきます🙏

alpha2048alpha2048

Google基調講演

intro (AI活用例)

  • Gmailで文を自動生成
  • Google Mapのイマーシブビューでルート案内。今年くる東京もある
  • Google Photo
    • Magic Editor
    • 人を移動させたり、空を綺麗にしたり
    • 今年くる
  • PaLM2 モデルの紹介

Bard

噂になっていたGoogle版のChatGPT

  • PaLM2を使用
  • 複数の言語を学習済
  • Pythonのサンプル
  • Colab出力、今後Replit出力も
  • ダークテーマ有
  • Googleドキュメント、Gmail下書きへのエクスポート利用可能
  • 他Googleアプリとの連動
    • Google Lensから写真取り込んでキャプション書いてもらう
    • 自分に合いそうな大学を探してもらう→Google Mapに表示、Google Sheetに出力
  • Adobe Firefly で画像生成
  • 180以上の国で使用可
  • 日本語と韓国語も使える。40の言語でサポート予定。

Workspace

  • Docs
    • プロンプト打ち込んでジョブディスクリプション書いてもらう
    • 画像を作ってもらう
  • Google Sheets
    • プロンプト打ち込んで表を書いてもらう
  • Google Slide
    • スライドに合ういい感じの画像をさっと作ってもらう
    • スピーカーノートを作ってもらう
  • Duet AI for Workspace

Generative AIによる結果も出るように

Cloud

Developer

  • FirebaseとColab
  • Project Tailwind
    • 要約とか

Responsible AI

Universal Translatorのサンプル

Android Ecosystem

Android Expression

  • メッセージ、AIでなんかいい感じに文言修正するとか
  • ガウジェウカスタマイズについて
    • 絵文字で壁紙作る
    • 画像を設定すると背景が動いたり
    • 来月使えるように
    • AIで生成もできるように

Hardware: Intro and Pixel7a

Pixel7aの発表

Hardware: Pixel Tablet

  • TensorG2 with TitanM2
  • 11インチ
  • 3マイク、4スピーカー
  • 8GBRAM、128 or 256GMROM
  • 12時間持つ
  • 指紋認証あり
  • 8MPカメラ
  • スピーカードック

画面サイズやスピーカードックの存在を見ると、自宅での運用がメインターゲットと思われる

Hardware: Pixel Fold

  • Pixel Fold
  • TensorG2
  • 開くと7.6インチ
  • IPX8
  • Best foldable Camera
  • デュアルスクリーン インタープリターモード
  • デモみた感じ中央の分割もそんなに気にならない
  • アプリをドラッグしてデュアルスクリーンにするなど
  • Youtube 縦にすると、上画面で見つつ、下で操作など

慣れるまでは難しそうだけど使い勝手もよさそう。
ただ25万はすごい高い・・

alpha2048alpha2048

Developer Keynote

intro

  • I/O Flipについて

Mobile

  • Android Studio Bot
    • Hedgehogから
    • クラッシュ解析もしてくれる
  • generate Google Play Listings with AI
  • マルチデバイス対応について
    • Jetpack WindowManager
  • Watch OS 4
    • Watch Face
  • Kotlin K2コンパイラ
  • Flutter
    • Bettermentチームの例
    • Impeller
    • JNI bridge to Jetpack libraries

Web

  • WebAssembly
    • Managed-memory languages
    • Dart/Flutterで使用すると3倍早い
    • Kotlinも対応
  • WebGPU
    • Tensorflow.js
    • バニラJHSより100倍早い
  • Firebase Hosting
    • Next.js、Angular
    • NuxtやFlutter Webもサポート
  • Modern web debugging
    • ツリー表示にするなど
  • Interaction to Next Paint
    • vitalスコアの新しい指標
  • Baseline
    • APIの互換性に関する取り組み

AI

略 (MediaPipe、Kerasなど)

Cloud

  • Duet AI のサンプル紹介
  • Vertex AI
    • バッグの画像生成サンプル
    • キャプション生成サンプル

Close

  • Geospatial Creator
    • Unityなどで現実の地形にAR混ぜられる
alpha2048alpha2048

What's new in Dart and Flutter

  • 3.10について
    • Material 3対応
    • iOS/MacOS向けのアップデート
      • wireless debuggingもできるっぽい
  • Dart3 stableリリース
    • 100% null safe
    • New Patterns
      • pair、turpleパターンなど
      • switchの複雑条件対応
        • クラス比較など
    • New Class Midifier
      • interface class
        • implementのみに制限
      • base class
        • extendに制限
      • final class
        • implement、extendもできない
      • sealed class
  • DevTool
    • Memory page
      • Trace viewerがAndroidのそれとほぼ同じ
  • pub.devにScreenshotのせる
  • pub.devにトピックtag
  • SLSA L1 対応
  • Fragment shader on web
    • 高速化
    • OrbShader
  • wide gamut images for iOS
    • P3 カラースペースを使える
  • Impeller 3.10で使える
    • 以前から言われてた描画の改善
    • iOSでProduction Ready
    • AndroidはPreview
  • Web
    • canvaskit size高速化
    • フォントサイズを99%減らす
    • HTMLにFlutterコンテンツ サポート
  • mobile & desktop
    • Native Ads support
    • Dart interop pn Android
      • JNIgenによるAndroidプラットフォームAPI呼び出し
  • WebAssembly対応について
alpha2048alpha2048

その他 Flutter周り

Rethinking Dart interoperability with Android

ネイティブのAPIにアクセスする方法について

  • method channel
  • Pigeon
    • objc、javaなどで使用可能
  • FFIgen、JNIgen
    • Dartから直接呼び出せる。まだ少し使いにくそうな印象

Introducing Impeller - Flutter's new rendering engine

  • 今までSkiaを使用していたが、Impellerを使用する
  • Jankなどの改善ができる
  • GPUを使用する。Hardware Abstraction Layer

How to build a package in Dart

パッケージの公開方法。覚えておくといいかも

Deep dive into Flutter deep linking

  • GoRouterのサンプル
    • Manifestにmeta-detaとintent-filterつける
      • 必要に応じてpath patternをつける
    • info.plistいFlutterDeepLinkEnabledをtrueに。associated domain機能でドメインつける

Dart でパッケージを作成する

パッケージ作成方法やバージョニングの注意点について

テストのカバレッジ出力方法も載ってる

dart test --coverage=./coverage
dart run coverage:format_coverage -i ./coverage -o ./coverage/lcov.info --lcov --report-on lib/
coverallsapp/github-action@v2
alpha2048alpha2048

その他Android周り

Android の新機能

  • Android14のプライバシーセキュリティアップデート
    • メディアアクセス周りの権限、位置権限のダイアログ
    • フルスクリーンインテントNotification
    • IntentやReceiverのセキュリティ調整
    • スクリーンシェアについて
    • ヘルスコネクトAPI
    • パスキーサポート
    • プライバシーサンドボックス
  • マルチデバイス周り (省略)
  • Jetpack Compose
    • Compose for TV alpha
    • Modifiersのパフォーマンス強化
    • テキストのカスタマイズ周り、絵文字対応などアップデート
    • HorizontalPager、VerticalPager、FlowRow、FlowColumn
    • Compose Material 3
    • Android Studio Giraffe
      • Live Editデフォルト化
      • Animation Previer
    • Android Studio Hedgehog
      • Compose StateのDebugger表示
      • マルチプレビューテンプレート
  • Foreground Services
    • サービスタイプ指定が必要
  • Machine Learning
    • バーコード、テキスト認識などのAPIアップデート
    • Face mesh、ドキュメントスキャンなど追加
    • Custom MLについて
  • ART 14
    • Java 17。ガベージコレクションの改善
  • Kotlin
    • Kotlin DSLがデフォルトに
  • 予測型「戻る」ジェスチャー対応
  • ハイクオリティUX
    • Ultra HDRサポート
    • Media3 1.0のstableリリース
  • Personalization
    • 言語設定、温度や日時表記の細かい指定
    • 性別文法対応
    • シェア機能のアップデート
    • Non-linearフォントスケール
    • 新しいAccessibility API
  • Tools
    • UIの更新
    • Studio Bot
    • App Quality Insights + Android Vitals
    • Baseline Profilesの改善
      • 生成する機能がHedgehogに追加される
  • リソース

Android 用 Kotlin の新機能

  • Kotlin 2.0 compiler
  • 1.8よりスピードアップ
  • 2024以降にはデフォルトになる
  • Kotlin DSL for Gradle builds
    • Android Studio Giraffe 以降はKotlin DSLデフォルトに
    • Experimentalだが、Version Catalogsありも
  • KSP
    • 速度向上やmultiplatformサポートなど
  • Kotlin Multiplatformがbetaに
    • Google WorkSpaceなどでも使用されている

Android 開発ツールの新機能

  • Framingoのサポート
    • Network Inspector Traffic Interception
    • themed Apps Icon Preview
    • Lint Support for SDK Extension
  • 今後のアップデートについて
    • targetSDK migrationツール
      • targetSDKのアップデートのアシスタントが出る
    • 実機デバイスを表示 + Layout Inspectorからコードに飛ぶ
    • Studio Bot
    • App Quality Insight + Vitals
    • Google Assistant Plugin
    • Power profiler
    • Device Explorer
      • プロセスへのアクセス
    • ManagedDeviceのFirebase対応
    • Gradle cdonfiguration cache
    • Baseline Profile Gradle Plugin
    • Logs & Diagnostic Data for Feedback

スケーラブルな UI テスト ソリューション

Espresso、エミュレータを使用し、Foldable用のテスト設定方法
また、firebase testlabを使用して色々なデバイスを使う方法
Gradle 8.2でスクリーンショットテストが追加

Jetpack Compose のデバッグ

HedgeHogから追加
デバックポイントをcomposeに置くと、recompositionのStateを確認できる

その他、benchmarkやProfilerによるデバッグ方法の紹介

Android の質の高いメディア体験

Spatial Audioについて
Ultra HDRについて
Jetpacl Media3について

Android の未来に向けて開発する

  • Android 14のバックグラウンドタスク
  • Cross Device SDK
    • スマホの電話をタブレットに転送とか、地図を車に共有とか
    • BTやWiFiで
  • 予測型「戻る」ジェスチャー
    • Composeでの実装方法
  • Android14から、targetSDKが23より低いものはインストールできない
  • プライバシー・セキュリティ周り
    • プライバシーサンドボックス
    • ヘルスコネクト
    • バックアップ周りについて
      • バックアップ時の挙動のテスト方法を記載
    • Credential Manager
  • Personalization
    • Jetpack Glance
      • ComposeでHome Widgetを作る
    • アプリ毎の言語設定
    • Grammatical inflection
    • Non-linear font scaling
    • App ActionsでGoogle Assistantに対応する
  • Hardware

Android で UI 状態を保存するためのベスト プラクティス

  • UIStateのロストタイミング
    • Configurationの変更
      • 回転やダーク・ライトテーマの変更など
    • リソースが少ない時に、アプリがバックグラウンドにいる時
    • スワイプして停止モードにする
  • ベストプラクティス
    • Configurationの変更にはViewModel API
      • メモリーに残る、ナビゲーションのキャッシュなど
    • スワイプなどの対策に、Persistent Storage
      • DataStore
      • Room
    • リソース少ない時のやつはSaved State APIs
      • Config Change、メモリーに残る
      • サイズ制限あります
      • IDだけとか、入力値、操作の保存とか、一時的なものを持つ
      • onSaveInstanceStateやrememberSaveableを使う
      • ActivityScenario.recreate、StateRestorationTesterなどでテストする
      • ビジネスロジック周りはsaveStateHandle.saveableを使って保存する
    • rememberSaveableとSaverを使ってUiStateを保存する例
      • Viewの場合はSaveStateRegistryとSaveStateRegistryOwnerで保存する例

Android のプライバシー サンドボックスに関して知っておくべき 10 個のポイント

このスクラップは2024/05/14にクローズされました