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
自分用趣味アプリを作っている話
Search
TAKAyukiatkwsk
December 21, 2024
Programming
0
67
自分用趣味アプリを作っている話
Kanazawa.rb meetup #148 のLightning talk資料です。
TAKAyukiatkwsk
December 21, 2024
Tweet
Share
More Decks by TAKAyukiatkwsk
See All by TAKAyukiatkwsk
argo-rolloutsにコミットした話
takayukiatkwsk
0
6
EnvoyのWasm filterを体験する
takayukiatkwsk
0
32
zoxideのご紹介
takayukiatkwsk
0
79
Kanazawa.rbに参加してからのふりかえり
takayukiatkwsk
0
40
git-secretsとgitフックをざっと理解する
takayukiatkwsk
0
300
計測プラットフォームSREチームとシステム障害対応 / measurement platform SRE team's incident response
takayukiatkwsk
0
1.1k
Flutterに入門して体重グラフアプリを作る / Get started Flutter and build a weight graph app
takayukiatkwsk
0
380
リモートワークを振り返る / Look back on remote-working
takayukiatkwsk
0
110
ブログでのアウトプットが減っている件 / What long intervals my blog posts have!
takayukiatkwsk
0
90
Other Decks in Programming
See All in Programming
AIコーディングワークフローの試行 〜AIエージェント×ワークフローでの自動化を目指して〜
rkaga
2
3.4k
API for docs
soutaro
1
770
「影響が少ない」を自分の目でみてみる
o0h
PRO
2
990
Kubernetesで実現できるPlatform Engineering の現在地
nwiizo
3
1.9k
Defying Front-End Inertia: Inertia.js on Rails
skryukov
0
460
Chrome Extension Techniques from Hell
moznion
1
160
いまさら聞けない生成AI入門: 「生成AIを高速キャッチアップ」
soh9834
15
4.5k
Youtube Lofier - Chrome拡張開発
ninikoko
0
2.4k
Enterprise Web App. Development (1): Build Tool Training Ver. 5
knakagawa
1
110
Kamal 2 – Get Out of the Cloud
aleksandrov
1
180
Agentic Applications with Symfony
el_stoffel
2
270
Go1.24 go vetとtestsアナライザ
kuro_kurorrr
2
840
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1369
200k
The Cult of Friendly URLs
andyhume
78
6.3k
Rails Girls Zürich Keynote
gr2m
94
13k
Building Applications with DynamoDB
mza
94
6.3k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Building an army of robots
kneath
304
45k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.1k
Testing 201, or: Great Expectations
jmmastey
42
7.4k
How to train your dragon (web standard)
notwaldorf
91
6k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
650
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Transcript
自分用趣味Webアプリを 作っている話 Kanazawa.rb meetup #148 Takayuki Takagi
自己紹介 • Takayuki Takagi (髙木貴之 / ニボシーニョ) • @TAKAyuki_atkwsk /
takayukiatkwsk • SRE @ ZOZO • AWS, Kubernetes, Scala, Ruby, Go, etc. • ビール、餃子、サッカー観戦が好き 2
自分用趣味Webアプリに ついてゆるく話す 3
どんなWebアプリか? • Nidera score viewer(限定公開) ◦ beatmania IIDX(弐寺)の過去スコアをさくっと確認できるもの ◦ ゲーセンにいるときにスマホから見る想定
• 機能一覧 ◦ 楽曲検索 ◦ 楽曲のスコア表示 ◦ 楽曲に対するメモの保存・表示 ◦ 楽曲スコアCSVファイルのアップロード 4
雰囲気を紹介 5
技術要素 • Webフレームワーク: Remix (v2) • CSSフレームワーク: Tailwind CSS •
実行環境: Cloudflare Workers • データベース: Cloudflare D1 6
なぜ作っているのか? • 技術面 ◦ Cloudflareを使ってみたい ◦ Remixを使ってみたい • 実用面 ◦
公式サイトでもスコアの確認はできるが、過去作を通しては不可 ▪ CSVダウンロードできるので、これを保存して集計することになる ◦ 需要を満たすサイトは既にいくつか存在する ◦ 車輪の再発明になるけど、技術的な興味含め作ってみることに 7
作ってみた感想 • Remixのお作法に慣れてきた ◦ loaderとactionを抑えれば良い ▪ loader: ページ描画時にデータを渡すための関数 ▪ action:
データを操作するための関数(例:フォームのsubmit時) ▪ どちらもサーバーで動く ◦ URLに対応するファイルの配置 ▪ /music/search -> app/routes/music.search.tsx ▪ /music/:id -> app/routes/music.$id.tsx ◦ シンプルな規約があると考えることが減ってありがたい ▪ (課題外在性の)認知負荷が下がるとも言えそう ▪ Ruby on Railsにも当てはまる ▪ 選択肢が多すぎるのは難しい 8
作ってみた感想 • ブラウザでJavaScript無効にしても機能する ◦ 普通のWebサイトとして振る舞う ◦ 実装を変えているわけではない ▪ イベントハンドラやReactで状態遷移を伴う何かを実装していれば、それ は機能しないと思われる
◦ Progressive Enhancement | Remix ▪ > JavaScript なしで動作する方法でアプリを構築し、その後 JavaScript を重ねてエクスペリエンスを強化できるということです 9
作ってみた感想 • 1ページに何でも詰め込まない方がいい ◦ 楽曲ページ (/music/:id) の例 ◦ 当初は楽曲のスコアとメモを同居させていた ▪
メモの保存のルーティングとページ再描画がどうにもうまくいかなかっ た(やりようはあるかもしれないが) ◦ ナビゲーションタブを設置して両者を分離した 10
before after 11
作ってみた感想 • 1ページに何でも詰め込まない方がいい ◦ 楽曲ページ (/music/:id) の例 ◦ 当初は楽曲のスコアとメモを同居させていた ▪
メモの保存のルーティングとページ再描画がどうにもうまくいかなかっ た(やりようはあるかもしれないが) ◦ ナビゲーションタブを設置して両者を分離した ◦ 結果 12 ▪ データの流れがシンプルになった ▪ 操作が分かりやすくなった(主観)
さいごに • Remixの良さが少しだけ分かったかもしれない ◦ loaderとactionさえ気にしておけばひとまず良いという安心感 • フルスタックで開発するのは大変だけどおもろい ◦ ページ設計やコンポーネント書くのが新鮮 •
今後やりたいこと ◦ UIの拡充やスコア推移のグラフなど実装したい ◦ デプロイ自動化したい ◦ React Router v7にアップデートしたい 13
以上 ありがとうございました! 14