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
「みんなでドラフト」に使っている技術
Search
ckoshien
February 19, 2021
Programming
69
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「みんなでドラフト」に使っている技術
ckoshien
February 19, 2021
More Decks by ckoshien
See All by ckoshien
スコアブックアプリを作った話
ckoshien
0
35
Other Decks in Programming
See All in Programming
JIS keyboard support in Omarchy
lef237
0
130
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
430
ActionController meets Protocol Buffers
sorah
0
550
golang-bob.pdf
iwatsukayura
0
130
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
160
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
R8 の設定見直しでアプリサイズ削減
andpad
0
220
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
970
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
170
Featured
See All Featured
The Curious Case for Waylosing
cassininazir
1
570
Un-Boring Meetings
codingconduct
0
460
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
How to make the Groovebox
asonas
2
2.5k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
How to build a perfect <img>
jonoalderson
1
6.1k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
How to Ace a Technical Interview
jacobian
280
24k
Transcript
「みんなでドラフト」に使っ ている技術 2021/2/19 PIZZA_JP #38
目次 1. みんなでドラフトとは 2. 使っている技術 3. MQTTとは? 4. アプリの仕組み 5.
なぜ作ったか? 6. どう作ったか? 7. 得られた知見 8. 今後やりたいこと
どんなアプリ? https://draft-now.netlify.app/
「みんなでドラフト」とは ドラフト会議を仲間同士でリモートで行えるツールです。 1. 予め候補選手を登録する。 2. 手の内を伏せたまま候補選手を選択する。 3. 一度に選択選手がオープンされ、読み上げとアニメーションが行 われる。 操作ができる「監督」モードとできない「観客」モードがあります。
複数端末で画面を同期することができます。
使っている技術 UI ・NextJS ・ReactNativeWeb ・netlify(プラットフォーム) データ送受信 ・MQTT(Message Queuing Telemetry Transport)
・localstorage(保存) 読み上げ ・voicetext API ・vercel(プラットフォーム)
MQTT(Message Queuing Telemetry Transport)とは? 通信プロトコルの一種でPub/Subモデルのメッセージ配信プロトコル (N対Nの配信が可能)。 topicという単位で受け取るメッセージを購読することができる。 履歴の残らないLINE/チャットのようなもの。 topic =
チャットルーム/新聞の種類
「みんなでドラフト」の仕組み DBを使わずに、ローカルストレージの内容を MQTTを使って共有する方式にしている。
なぜ「みんなでドラフト」を作ったか 普段やっているスポーツで「ドラフト会議」的なイベントがあり、リモート ならではの苦労が見えたので自動化・簡略化できないか考えた。
どう「みんなでドラフト」を作ったか 以前、MQTTを使ったボウリング大会用の状況 共有サービス(ReactJS/Javascript)を作ったことが あり、それを元にNextJS/TypeScriptへの移植・ 改修を行った。 UIにはReactNativeWebを採用。 単に改修するだけだと面白くないので読み上げ・ アニメーション機能を実装した。
得られた知見 ・vercelのfunctionの使い方 (作るの初めてではないので新たな発見はない) ・ReactNativeWebの運用 (これも2件目) ・MQTTサーバ(mosquitto)をdockerで建てる
今後やりたいこと WebRTCなどの代替としてMQTTを使ったので socketIO(NodeJS)などを使った実装を試してみたい。 後から操作した人のローカルストレージが上書きされてしまうので、 中身のマージなども考えて実装しないといけない。 上記を考えるとDB使った方が楽かもしれない。