Closed6
Google IO 2023 メモ

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

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
Search
Generative AIによる結果も出るように
Cloud
- Vertex AIにおける PaLM APIのchat実装など
- 3つのモデルを追加
- Duet AI for Google Cloud
- Code assistance (GitHub Copilot的なコーディング支援
- A3 Virtual Machines
- nvidia H100 GPU搭載
Developer
- FirebaseとColab
- Project Tailwind
- 要約とか
Responsible AI
Universal Translatorのサンプル
Android Ecosystem
- Google Appsのリデザイン
- Wear OSのアップデート
- デバイスを探す機能のアップデート
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万はすごい高い・・

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混ぜられる

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
- interface class
- DevTool
- Memory page
- Trace viewerがAndroidのそれとほぼ同じ
- Memory page
- 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対応について

その他 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機能でドメインつける
- Manifestにmeta-detaとintent-filterつける
Dart でパッケージを作成する
パッケージ作成方法やバージョニングの注意点について
テストのカバレッジ出力方法も載ってる
dart test --coverage=./coverage
dart run coverage:format_coverage -i ./coverage -o ./coverage/lcov.info --lcov --report-on lib/
coverallsapp/github-action@v2

その他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に追加される
- リソース
- アーキテクチャガイドライン
- UIStateの動画
- ページングライブラリテスト
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
- targetSDK migrationツール
スケーラブルな 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のバックグラウンドタスク
- フォアグラウンドサービスはForeground Service TypeとPermissionの指定が必要
- Short Serviceという短い用途向けのものも提供
- https://developer.android.com/about/versions/14/changes/fgs-types-required?hl=ja#short-service
- purpose-build APIs
- Companion Device Manager
- Chat Bubbles
- Picture in Picture
- User-initiated data transfer
- Telecom Jetpack library
- Exact Alarms
- フォアグラウンドサービスはForeground Service TypeとPermissionの指定が必要
- 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に対応する
- Jetpack Glance
- Hardware
- Ultra HDR対応
- Camera、Mediaのアップデート
- 外部キーボード対応
- Jetpack LibraryでLow latency drawing
- 64bitデバイス対応
- オンデバイス ML Kitについて
Android で UI 状態を保存するためのベスト プラクティス
- UIStateのロストタイミング
- Configurationの変更
- 回転やダーク・ライトテーマの変更など
- リソースが少ない時に、アプリがバックグラウンドにいる時
- スワイプして停止モードにする
- 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で保存する例
- Configurationの変更にはViewModel API
Android のプライバシー サンドボックスに関して知っておくべき 10 個のポイント
このスクラップは2024/05/14にクローズされました