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
Phoenix LiveViewで結婚式用Twitterを作った話
Search
shozo koga
June 01, 2019
Programming
3.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Phoenix LiveViewで結婚式用Twitterを作った話
2019/6/1に開催されたErlang & Elixir Fest 2019で行ったLT資料です
https://elixir-fest.jp/
shozo koga
June 01, 2019
More Decks by shozo koga
See All by shozo koga
Looker StudioとSnowflakeでプロダクトチームのダッシュボードを作る取り組み
koga1020
0
890
20230511 Storybookを軸としたコンポーネント管理と自動テスト戦略
koga1020
0
890
20230311 最近のElixir動向まとめ
koga1020
0
950
【Elixir】Dataloaderを導入してGraphQLのN+1問題を解消する
koga1020
1
560
20221108 WEB+DB PRESS Vol.131「はじめてのElixir」特集記念イベント
koga1020
1
290
fukuoka.exの思い出話とこれからを考える
koga1020
1
270
Ectoの全体感をまとめてみる
koga1020
0
610
Phoenix.PubSubの紹介と活用を考える
koga1020
0
600
EDI#1 発足LT会
koga1020
0
100
Other Decks in Programming
See All in Programming
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
420
AI駆動開発4年目の現在地(『あなたはFDEになるべきか?』イベント資料)
kumaiu
0
580
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
300
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
190
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
200
Railsバージョンを4倍にした話
optim
0
1k
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
Spec-driven Development with AI
simas
PRO
0
2.3k
LLM 101: Exploring LLMs, Starting with Tokens.
dalinaum
0
100
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.4k
Facilitating Awesome Meetings
lara
57
7.2k
What's in a price? How to price your products and services
michaelherold
247
13k
How to build a perfect <img>
jonoalderson
1
6.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
330
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
560
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
980
Product Roadmaps are Hard
iamctodd
55
13k
Testing 201, or: Great Expectations
jmmastey
46
8.4k
How to Talk to Developers About Accessibility
jct
2
620
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
510
Transcript
Phoenix LiveViewで結婚式用Twitterを作った話
自己紹介 古賀 祥造(こが しょうぞう) 株式会社ベガコーポレーション fukuoka.ex ビルダー Elixir/PhoenixでAPIを日々書いてます : @koga1020_
fukuoka.exから来ました! もくもく会は毎月開催、リモート参加OK! ↓↓Let’s join us!!↓↓ https://fukuokaex.connpass.com
Phoenix LiveViewで結婚式用Twitterを作った話
Phoenix LiveView?
なにそれ?おいしいの?✋
Phoenix LiveViewとは Phoenixアプリに追加して使うライブラリ WebSocketによる双方向通信を利用して、clientの状態をPhoenix側で管理できる 画面の動的な書き換えをサーバーサイドレンダリングによって行うことができる
こんな感じでユーザーのクリックに応じて数値を変えたり、
リアルタイムバリデーション / 入力欄の追加など。
実はこのスライドもLiveView製
もうすこし流れを説明
ユーザーのClickイベントをサーバーで受け取ったり、
サーバーから時刻情報を送りつけたり出来る!
このやりとりがWebsocketによって双方向で繋がるイメージ
こんなのに向いている リッチなUI 通知, progress bar, dashboard, widgets, etc. 動的なフォーム リアルタイムバリデーション,
サジェスト, multi step, etc. 他ユーザーへの通知(PubSub) ref: https://elixirforum.com/t/phoenix‑liveview‑is‑now‑live/20889/13
これらのロジックを APIを作らずに、 JavaScript不要でElixirコードでロジックを記述して、 サッと実現できるのが良き
こんなものを作った
友人の結婚式用 Twitter風Webアプリ
いいね, 削除機能
ハッシュタグも実現
技術要素 CSSフレームワーク: bulma ユーザーのボタンclickでclassの付け外し の出し分けなど 画像アップロード先: S3 を利用 デプロイ: gigalixir
LiveViewもしっかりデプロイ可能
どうだった? 実工数4日程度でサクサクと作れた Elixirワンソースでサクサクと書けてgood Vue.jsの経験があり、それとかなり近いフィーリングで書けてgood 投稿→他ユーザー画面へ即反映 がサクッと作れた これはPhoenixの旨味
気づき➀ ロジックをすべてElixirに寄せれるのはとても良い 例. 投稿本文の文字列で 文字列 をハッシュタグとしてlinkに変換したい →ElixirのViewモジュールに関数生やして書ける Validationのロジックもフロントに持たなくてよくなる バリデーションの仕様変更に強くなる
気づき➁ ルーティングが異なる画面(例. 一覧画面と詳細画面)をLiveViewで切り替えるのは微妙そ う? あくまで1Viewファイルがリッチになるイメージで使うと良さそう 一覧ページから詳細ページへの遷移をLiveViewで書く→ 一覧ページ内での検索のサジェスト、登録画面内でのリアルタイムバリデーション→
気づき➂ ユーザーの入力に対して遅延(=debounce)がないとつらい 属性が今後増える(はず) joseがissue立てている! 今後に期待!
まとめ 要件次第ではLiveViewはかなり実用的 気になった方はExampleリポジトリがあるので、そこを触ってみましょう https://github.com/chrismccord/phoenix_live_view_example 面白いユースケースがあれば、ぜひ共有しましょう
Thank you!!