Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
推しの VTuber の公式サイトを作った
Search
嘉音とんと
December 19, 2022
Technology
0
170
推しの VTuber の公式サイトを作った
嘉音とんと
December 19, 2022
Tweet
Share
More Decks by 嘉音とんと
See All by 嘉音とんと
CSSの歩き方
kanon_tonto
0
53
推しの VTuber の公式 Web サイトを作った Part.2
kanon_tonto
0
28
これまでに一番苦労したプロジェクト
kanon_tonto
0
23
ぼっちがリモートワークやってみた
kanon_tonto
0
90
Kanazawa.rbを振り返る
kanon_tonto
0
100
もう僕は勤怠を入力しなくても良い
kanon_tonto
0
47
Goで始めるWebsocketプログラミング
kanon_tonto
0
160
AWS Lambdaでファイルをこねくり回す
kanon_tonto
0
430
iOSアプリをリリースするまで
kanon_tonto
2
410
Other Decks in Technology
See All in Technology
AWS re:Invent 2025 を振り返る
kazzpapa3
2
110
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
870
AI との良い付き合い方を僕らは誰も知らない (WSS 2026 静岡版)
asei
1
200
AI with TiDD
shiraji
1
330
RALGO : AIを組織に組み込む方法 -アルゴリズム中心組織設計- #RSGT2026 / RALGO: How to Integrate AI into an Organization – Algorithm-Centric Organizational Design
kyonmm
PRO
3
480
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
Agentic AIが変革するAWSの開発・運用・セキュリティ ~Frontier Agentsを試してみた~ / Agentic AI transforms AWS development, operations, and security I tried Frontier Agents
yuj1osm
0
190
製造業から学んだ「本質を守り現場に合わせるアジャイル実践」
kamitokusari
0
170
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
380
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
360
Featured
See All Featured
Building Adaptive Systems
keathley
44
2.9k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Embracing the Ebb and Flow
colly
88
4.9k
Leo the Paperboy
mayatellez
0
1.3k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Side Projects
sachag
455
43k
Accessibility Awareness
sabderemane
0
29
Utilizing Notion as your number one productivity tool
mfonobong
2
190
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
140
Transcript
@27ma4_ton10 github.com/RyuseiNomi 推しの VTuber の 公式サイトを作った
とんと # Webエンジニア # マリオカート # VTuber(見る方) # Go /
Swift / React @27ma4_ton10
https://kiyubi-kokon.netlify.app/ 作成したもの
・React (Typescript) ・CSS ・Golang ・Node.js ・AWS Lambda ・AWS API Gateway
・AWS S3 ・AWS CloudFront 技術スタック
システム構成図
https://… 最新の 動画情報 JSON の返却 イベントの発火 JSONをポーリング API を叩く 動画情報
JSON の取得 ブラウザ JSON 画像の配布 画像の取得
・タイトルのロード画面 ・ハンバーガーメニュー ・スクロールに連動したアニメーション ・最新の配信を常に表示する 拘りポイント
拘りポイント1 ロード画面
ローディング画面とタイトル画面を 画像の読み込み状況によって出し分ける ✅
None
fetchImage が終わった後の処理 画像の読み込み処理
None
ロード中のぐるぐる タイトル
拘りポイント2 ハンバーガーメニュー
簡単な仕組み
半透明のボタン メニュー これをすることで メニューを開いた時に 背景を暗くすることができる 表示の制御は state で管理
スクロールの仕組み
None
移動対象の DOM の絶対位置を取得 window.scrollTo で移動させる
アニメーションの仕組み
None
右からふわっと出現するアニメーション アニメーションを適用させたボタン
拘りポイント3 スクロールと連動した アニメーション
スクロールの度に現在の X 座標を取得して 特定のコンポーネントと比較する ✅
None
これ注目
https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener
つまり、スクロールが実行されるたびに toggleFadeIn メソッドが呼ばれるようになる
あとはメソッドを 実装するだけ
X軸の座標と ターゲットとなるコンポーネントのX座標を取得 2つの座標を比較して、特定の位置に達したら animation クラスを動的に追加する
拘りポイント4 最新の動画を YouTube から取得
最初にやろうとしたこと ブラウザ 動画情報 API を叩く YouTube API V3 の上限がかなり低く 約
100 リクエストほどで上限に達する
最初にやろうとしたこと ブラウザ 動画情報 API を叩く 独自のAPIサーバを作成して取得する
APIサーバ ポーリング Lambda 関数 ブラウザ JSON
ポーリング Lambda 関数 JSON
ポーリング Lambda 関数 YouTube API から動画情報を取得して S3 バケットにアップロードする ✅ JSON
AWS SAM Lambda周りの構成管理や デプロイなどを コマンド1つで実現出来る
None
こんな感じに yamlファイルで Lambdaのパラメータを管理
あとはコードを 書くだけ
あとはコードを 書くだけ 中でやっていること ・動画データの取得 ・temp 配下に空っぽの json ファイルを作成 ・取得したデータを作成したファイルに書込む ・書き込まれたファイルを
S3 にアップロード
None
APIサーバ
ブラウザ リクエストがあった際に S3 からファイルを取得して返す ✅ JSON
None
None
S3 のバケット情報 S3 のファイルを取得する処理 レスポンスを生成して返却
https://… ブラウザ
上限 100 リクエストから ある程度は耐えられるように!
TODO フロントエンド ・SEO 対策の強化 ・画像のレンダー処理をもっと快適にする バックエンド ・JSON を捌く処理のリファクタ(Lambda) ・失敗時にアラートを飛ばす仕組み作り インフラ
・リクエスト数の上限の最適解を探す ・発生するコストの見積もり
(=´∀`)人(´∀`=)
推しは推せる時に推しましょう