🥷

Google Developer Groups devfest Tokyo 2023に行ってきたのでセッションをメモ(走り書き)

2023/12/10に公開

はじめに

Google Developer Groups devfest Tokyo 2023に参加したのでセッションをメモしました。
主な内容としては自分が参加したセッションを中心に気になったワードや学習したことを中心に書きます。
誤りなどがあれば、随時修正していく予定です。

また、アーカイブなどが出ましたら内容を元にきれいに修正する予定です。

GDG DevFest Tokyo 2023

イベント概要

X(旧Twitter)のハッシュタグ

#DevFest2023 #gdgtokyo

Google CloudのGenAIサービスで「AIにファッションを褒めてもらうアプリ」を作ってみよう

PaLM2 APIを使った画像の解析、image-to-textでテキストを生成する。
Notebookでコードを書いてプロトタイピング

実際にWebとして提供するときはバックエンドにCloudRun
フロントエンドにFirebase Hostingを使って作った。
ちょっと難しいところとしてAIに対して画像をBase64エンコードして送信する必要がある。

VertexAI searchとGoogle検索の比較について

今は生成AIを使った検索があるが、そうではない検索との比較
VertexAI searchはグランディングを使ってハルシネーションを防止している。

個人アプリ開発(メンテナンス)14年の歴史

14年間にわたってメンテナンスしているアプリについて語る。
会場で個人開発をしている人がどれくらいいるかを挙手でアンケートをとった。
会場においては個人開発が少なくなっているという印象だった。最近は個人開発に対する風当たりが強い。

登壇者が開発したアプリは21件ある。ノリですぐ作って公開していた時期があった。
そのときはGoogle Play Storeに自由にアップロードできた。一度アップロードすると削除できない。
サブスクリプションの方が稼ぎが多い。

ちなみに昔みたいに「アプリをアップロードして一発当てよう」ということは極めて難しいです。(2023年12月)

AppBundle エクスプローラから履歴を紹介

過去にアップロードしたアプリの履歴を紹介
最初のアップロード日付がUNIX TIMEになっているw

14年間メンテナンスを続けている要因

使ってくれる人がいる。コメントをくれたりすると対応しなきゃという気持ちになる。
そもそも自分も使っているアプリなのでメンテしている。

やって良かったこと辛かったこと

2008年「GitHubリリース開始」〜XXXX年「Androidマーケット開始」などなど歴史年表を公開

やって良かったことTop6

第6位GitHubでソースコードを管理するようにした
第5位CIを導入した
第4位Renovateを導入した
第3位Daggerを導入した
第2位テストを書いた
第1位README、コメントを書いた

Top10
第9位version catalogへの移行
第8位非同期画像読み込みライブラリの移行
第7位Kotlinへの移行
第6位EclipseからAndroidStudioの移行
第5位EXTERNAL_STORAGE permission廃止
第4位UIの全面書き換え
第3位通信周りの書き換え
第2位Billig Libraryの更新
第1位デカいActivityの解体

memo: 10位がなんだったかメモできなかった

まとめ

  • VCS、テスト、CI、ライブラリ更新ツールを入れよう

Vertex AI 2023年の進化を振り返ろう

リリースノートを振り返る。2022年は67件、2023年は125件で件数が倍増している。
とりわけ大きなリリースについて振り返る。

Model Garden:AIカタログを提供するサービス、OSSのAIなども提供している。
随時、AIモデルが提供されている。

PaLM API:LLMをAPIで提供している。

Unicornというモデルを11/30にリリース
Imagen:テキストから画像を生成する。
Vector Search:ベクトル検索サービス、数値化したデータで検索する技術をフルマネージドで提供する技術、元々はmatching engineというサービス名
Feature Store:特徴量を補完するサービス、BigQueryと統合して使い勝手が向上
colab Enterprise:Google Cloudと連携したコラボラトリー

※WorkbenchとColab Enterpriseの2つあってどちらも似たようなことができる。

2023年のウェブ

ここから午後のセッション

リンク

Google Developer expert第1号認定の人よりセッション

  • Interop2022,2023の取り組みが成果を上げてきた。
  • CSSの機能追加が活発
  • 2023年はパスキー元年

未来の予想

  • Cookieが使えなくなる未来、プライバシーサンドボックスの活用が進む?
  • パスキーをみんなが使うようになる
  • 2024/06にChrome拡張機能のマニュフェストv2が廃止になる
  • 2024年4月に障害者差別解消法の影響でアクセスシビリティが向上させないといけない

Chrome109

  • 1hCSSのサポート
  • Math ML Coreのサポート

Chrome110

  • ピクチャーインピクチャーのCSS擬似クラスが対応
  • launcher_handlerマニュフェストメンバー
    • PWA使っている人は関係ある
  • COEPをスキップして埋め込みルールを解除
    • 代わりにCookieやローカルストレージにアクセスできない
  • コンテナクエリ

Chrome111

  • View Transition API
    • CSSやJavaScriptで扱えるようになった
  • CSS Color level4
    • 色の空間が広がった

Chrome112

  • CSSのネストができるようになった
    • 記述量が減るので読み込みが早くなる
  • 初期フォーカスのアルゴリズムの更新
  • PWA要件についての修正
    • ServiceWorkerの NoOpsフェッチハンドラのスキップ

Chrome113

  • Web GPU
    • 各種サポートされたAPI、バビロンが対応したとか
  • ファーストパーティセット

Google I/O

  • WebGPU
  • パスキー
    • パスワードを使わない方式の認証方法
  • BaseLine
    • 主要ブラウザでサポートされている技術をまとめて呼称、MDNにある
  • Interaction to Next Paint
    • 2024年からCore Web Vitalに

※プライバシーサンドボックスはこのあたりから

Chrome114

  • text-wrap:balance対応
  • CHIPS対応
  • PopOver

Chrome115

  • Scroll-driven Animation
  • <fencedframe>
  • Topics API
    • 閲覧履歴に基づいて何かを表示する

Chrome116

とくになし

Chrome117

  • transition系のCSSサポート
    開始終了のアニメーション向けのCSSサポート
    配列のグループ化

Chrome118

  • css @scopeに対応
  • prefer-reduced、透明度の指定ができるようになった

ここら辺でパスキーの話がニュースになった。

Chrome119

  • 入力が終わった後にチェックが入るようなった

Chrome120

  • CloseWatcher APIのサポート

Firebase Authentication Best Practices

Firebaseのリードエンジニアから認証と認可の説明(前提の説明)があった。
まずは認可の説明

さまざまなアプリがほとんどのアプリではログインを求められている。
カスタムされた認証を作ることはオススメしない。

ログインユーザーを作る面倒なこともしない。
匿名ユーザーをそうでないユーザーに変換するオプションとしてメールアドレスとパスワードがある。
しかし、セキュリティとしては脆弱です。ハッカーにクラックされるかもしれません。
もう1つはサインインURLをメールで送ることです。リンクをクリックすることで認証が完了します。

複数のフェデレーションアクセスでも認証できます。サードパーティも可能です。
多要素認証を利用する。(SMS、TOTPなど
電話番号認証は電話番号を持たない端末で面倒なことが起きる。TOTPを使った認証もある。

Firebase Authentication - 参考

Google Cloudでチームで安全にデプロイをする

アプリケーション安全にデプロイしたい話(CloudDeployについてフォーカス)
CloudDeployはフルマネージドCI/CD、CloudRunで利用可能

命令的デプロイは手続き的に順番に実行
宣言的デプロイは手順ではなく、理想の状態を定義

CloudDeployの概念や仕組みはドキュメントがある。

https://speakerdeck.com/sakajunquality/devfest-tokyo-2023-introduction-to-cloud-deploy

ソフトウェアサプライチェーンセキュリティの強化:Google Cloud による SLSA の活用

ソフトウェアサプライチェーンセキュリティとはソフトウェアを提供する過程にセキュリティを入れていく考えです。
ソフトウェアアーティファクトに関する情報が足りないと悪意のあるコードが挿入される可能性があります。
また、OSSのサプライチェーンはアタックされることがあります。

重要なことは誰が公開しているのか、ソースコードはどんな内容か?、依存関係、ビルド後の上書きは?ビルド時の上書きは?
そこでSLSAが役に立つ。

デモではアーティファクトレジストリから持ってきたイメージとCloudShell上にあるイメージをそれぞれ
pushして動作確認をした。(CloudShell上にあるイメージのpushはCloudRunに正規のイメージではないのでデプロイできない)

ページ遷移の高速化 2023 年最新のページナビゲーション事情

調べによると多くのユーザはナビゲーションにおいて4.6秒でページ遷移をしている。
そのような時代なので直感的に動かせるだけでなく、高速化が求められている。

CSSの機能
Element transition
view-transition-oldからview-transition-newの遷移
デモではブラウザでデバッグする様子が公開された。
view transition Animationはサイバーエージェントで使われている。
今はview transition for MPAがプレビューで使える。

Preloading技術の種類
Prerenderを使うとめっちゃ早い画面ロードが可能、Speculation rulesを使うとChromeのAPIを呼び出せる。
prerender-demos.glitch.meを使うとデモが閲覧できる。

Backforward cache:戻る進むの動作を早くする機能(バージョン96以降)
Yahoo Japanニュースで実際に使われている。

Google Marketing Solutions のGitHub から学ぶ Google Style Guides

話すこと

  • Google Style Guide(とくにPython)
  • GitHubに公開されていること

対象者

  • Developer初心者・中級者
  • ML/AIの初心者

Google Style Guide

それぞれの課題

  • チーム開発でコーディングルールがない
  • 書き方の意見が違う
  • 個人開発でコーディングルールを作っていないから毎回書き方が変わる(将来の自分が読めない)

上記のような課題があるのでGoogle Style Guides
を活用する。

Google Style GuideのPythonにフォーカス

いくつかコードを使って紹介
補足するとこういうスタイルガイドは強制するものではないので適宜、内容を取り入れていく。
Google Marketing SolutionsというGitHubのリポジトリがある。これはGoogle Cloud以外のもの

Google Marketing PlatformはGA4などが有名
Google Marketing SolutionsというGitHubのリポジトリはコードの書き方で学ぶことが多い。テストコードも参考になる。
あと、理解しやすい。

Googleのオフィシャルのプロダクトではない。急に動かなくなることもある。

Compassというプロダクト

Propensity model(興味があるかどうか)/Life Time Value(モデルを作るソリューション)
GAのEDAなどのコードの参考になる。

gPS Building blocks

gPS DS Teamが使っている共通ツール
モデル作成時のUnit Testが参考になります。

ユニットテストが書きにくいなどの困りごとがあるときはここを見た方が良い。

まとめ

  • Google Style Guideを指針にするのはどうだろうか
  • OSSなどのコードを読んでいる人はGoogle Marketing Solutionsのソースコードをオススメする

質問回答

  • Notebookのコーディング規約について
    • Notebookにはpylintやblackを使えば良い

感想

「Google CloudのGenAIサービスで「AIにファッションを褒めてもらうアプリ」を作ってみよう」

具体的なデモは見ていて面白かったです。
全体的に初歩的なことのおさらいでしたが、FirebaseとVertexAIの組み合わせはまだやったことがないので勉強になりました。
なお、Firebaseは触ったことがないですが、セッションを聞いて「使いやすそうだな」と感じたので触ってみたいと思いました。
全体的にわかりやすいスライドでした。

「個人アプリ開発(メンテナンス)14年の歴史」

個人アプリ開発者が少なくなっていることを取り扱いつつ、個人アプリ開発の事情を説明するセッションでした。
スライド後半では個人アプリ開発におけるTipsが網羅されており、大変参考になりました。

「Vertex AI 2023年の進化を振り返ろう」

Model Garden以外の話は概ね自分で触っていたので復習になった感じでした。
Geminiの話もありましたが、想定の範囲内でした。
Pixel8 ProだとGemini Nanoが使える。スマホで動くというのは初耳でした。

「2023年のウェブ」

Chromeをベースに今年のブラウザサポートについて説明があった。
バックエンドやインフラ、分析作業をする私としてはあまり詳しくない範囲
とくにPWAや拡張機能に関する話は何も詳しくないので勉強なりました。
また、CSSに関する話もあってスタイルの勉強をしている人には参考になると思いました。

「2024年のブラウザの将来」や「パスキーが標準になるかもしれない」といった内容は印象に残りました。

「Firebase Authentication Best Practices」

Firebase Authenticationを扱う上でそもそもの認証認可の話について学習できました。
Firebase Authenticationの利用はまだですが、どういったサービスか理解できました。
多要素認証の話ではパスキーの話もあって前段のセッション「2023年のウェブ」とリンクするところもありました。

「Google Cloudでチームで安全にデプロイをする」

CloudDeployの内容について深掘りする良い機会となりました。
(ところどころで使われているカワウソが可愛い。

「ソフトウェアサプライチェーンセキュリティの強化:Google Cloud による SLSA の活用」

本セッションでは開発プロセスにおいてセキュリティを入れる話が語られた。
SLSAとはGoogleが提唱するセキュリティのフレームワークのことであり、ベストプラクティスです。
内容としては具体的なデモがあってわかりやすかったです。

Google Cloud Next Tokyo 2023で語られていた内容ということもあって
若干ですが、復習に近い内容になりました。

slidoの質問がいくつか来ていましたが、わりと知られていない?ような印象を受けました。
しかし、ソフトウェアサプライチェーンセキュリティは開発に携わる人の中でも
シニアのエンジニア、さまざまな経験を持ったエンジニアして改めて問題として認識できるものだと思うので
知らない人がいてもおかしくはないかと少しだけ納得しました。

「ページ遷移の高速化 2023 年最新のページナビゲーション事情」

専門外で若干とっつきにくい内容でしたが、フロントエンドつまりはブラウザ側でもできる高速化手法について
知ることができるとても有意義なセッションだと思いました。
他のセッションでも取り扱いがありましたが、CSSやJavaScriptでChromeのAPIを呼び出すことを
題材にいくつかの機能について説明がありました。

個人的にはBackforward cacheがとても気になりました。

「Google Marketing Solutions のGitHub から学ぶ Google Style Guides」

Google Marketing Solutionsという部署があること自体はじめて聞いたところなので
どのようなことをされている部署なのか興味が湧きました。
セッションの内容としてはGoogle Style Guides、つまりはコーディング規約のようなものについての解説でした。
私も一度は読んだことがあって、セッションを理解することについては比較的に容易だったかなというところです。

また、OSSのリポジトリを読んでいる人にオススメしたいリポジトリの紹介がありました。
暇な時にコードを読む私としてはとても嬉しい話でした。

参考になるリンク

https://cloud.google.com/vertex-ai/docs/generative-ai/learn/models

参加できなかったLTの資料(一部

まとめ

懇親会とその前に開催されたLTには予定の都合で出られませんでしたが
全体を通して学びと復習になったイベントでした。
知らない内容については積極的に見ていきたいと思いました。

個人的にもう一度見たいと思ったセッション

  • 「2023年のウェブ」
  • 「ページ遷移の高速化 2023年最新のページナビゲーション事情」
  • 「個人アプリ開発(メンテナンス)14年の歴史」
    「Vertex AI 2023年の進化を振り返ろう」

実践してみたいセッション

  • 「Google Marketing SolutionsのGitHubから学ぶGoogle Style Guides」
  • 「Google Cloudでチームで安全にデプロイをする」
  • 「Firebase Authentication Best Practices」

ソースコードなどを積極的に読みたいと思ったセッション

  • Google CloudのGenAIサービスで「AIにファッションを褒めてもらうアプリ」を作ってみよう

おわり

Discussion