Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
推しの VTuber の公式サイトを作った
Search
嘉音とんと
December 19, 2022
Technology
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
推しの VTuber の公式サイトを作った
嘉音とんと
December 19, 2022
More Decks by 嘉音とんと
See All by 嘉音とんと
CSSの歩き方
kanon_tonto
0
69
推しの VTuber の公式 Web サイトを作った Part.2
kanon_tonto
0
44
これまでに一番苦労したプロジェクト
kanon_tonto
0
41
ぼっちがリモートワークやってみた
kanon_tonto
0
100
Kanazawa.rbを振り返る
kanon_tonto
0
120
もう僕は勤怠を入力しなくても良い
kanon_tonto
0
63
Goで始めるWebsocketプログラミング
kanon_tonto
0
180
AWS Lambdaでファイルをこねくり回す
kanon_tonto
0
440
iOSアプリをリリースするまで
kanon_tonto
2
440
Other Decks in Technology
See All in Technology
公共システムAdventCalendar2026
toru_kubota
0
260
令和の今、あらためて IAM を考える。アクセスキーを「無くせない現実」との向き合い方
kazzpapa3
0
330
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
220
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
3
420
AX時代の自治体支援リソース再配分と役割分担の再構成:戦略とロードマップ(概要)
sishi2026
0
200
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
800
Lint の層を組み直した話
bengo4com
3
320
IoTとは〜? 数字で見るSORACOM UG【SORACOM UG Explorer 2026】
soracom
PRO
0
190
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
610
AIコーディングはじめました
miso
0
150
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
0
360
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
2
150
Featured
See All Featured
Making Projects Easy
brettharned
120
6.8k
A designer walks into a library…
pauljervisheath
211
25k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
3
1.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Context Engineering - Making Every Token Count
addyosmani
9
1.3k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
370
YesSQL, Process and Tooling at Scale
rocio
174
15k
Become a Pro
speakerdeck
PRO
31
6.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
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) ・失敗時にアラートを飛ばす仕組み作り インフラ
・リクエスト数の上限の最適解を探す ・発生するコストの見積もり
(=´∀`)人(´∀`=)
推しは推せる時に推しましょう