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
TailorにおけるSchema-driven UIの実践例
Search
Seiya IZUMI
March 24, 2025
550
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TailorにおけるSchema-driven UIの実践例
Seiya IZUMI
March 24, 2025
More Decks by Seiya IZUMI
See All by Seiya IZUMI
Node.jsの宣言的マイグレーションツール作った
izumisy
0
68
Elm, the functional frontend
izumisy
3
1.2k
Elmの歩き方2019
izumisy
5
3.6k
Our Journey with the Biggest Elm App in Japan
izumisy
0
200
jQueryからElmまで
izumisy
1
1.7k
Ordering and Ordered
izumisy
1
120
Choo: Fun Functional Framework
izumisy
1
560
StackoverflowでREPを稼ぐ技術
izumisy
1
880
フロントエンド・バリデーション
izumisy
5
3.7k
Featured
See All Featured
HDC tutorial
michielstock
2
710
It's Worth the Effort
3n
188
29k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
330
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
エンジニアに許された特別な時間の終わり
watany
107
250k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Designing for Performance
lara
611
70k
Speed Design
sergeychernyshev
33
1.8k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
Transcript
© tailor inc. TailorにおけるSchema-driven UIの実践例 Seiya Izumi (sy_izumi)
© tailor inc. 今日の発表内容はあくまで React勉強会時点で自分が考えている脳内のスナップショットです 注意事項 Disclaimer
© tailor inc. Seiya Izumi (@sy_izumi) Introduction Lead Frontend Engineer
at Tailor
© tailor inc. Tailorとは? What is Tailor? 在庫管理や受発注管理、購買管理などのビジネスドメインをプラガブルなモジュールと して提供し、必要なモジュールを組み合わせることで高速に Tailor-madeな基幹システ
ムERPを構築できるプラットフォーム製品 組み合わされたモジュールは GraphQL APIとして提供され、フロントエンド SPAに限 らずモバイル、デスクトップ、 AIなど様々な環境から利用できる
© tailor inc. Tailorの組織構成 Departments 今日の話に関係あるざっくりした組織構成図
© tailor inc. ※超簡略化したProfessional Servicesでの開発の流れ (バックエンドにはTailor Platformを最初期から利用) 顧客向け開発のプロセスの現状 Process 要件定義
プロトタイピング・イテレーション プロトタイプのFBに基づき フロントエンドをスクラッチ開発 (with Next.js) 時間軸 本番運用 ※ Retool … 業務システムに特化した高機能な No-codeアプリビルダー
© tailor inc. • 実装工数の二度手間 ◦ できればRetoolで作ったフロントエンドをそのまま使いたい (が、後述の問題で難しい) • Retoolの技術的な課題
◦ 画面上のコンポーネントが多い画面は初回のレンダリングがめちゃくちゃ遅い ▪ UIビルダーで作られた画面をフロントエンドで全て組み立てているような挙動をする • M3 Macbook Proでも気になるレベルの遅さ (お客さんの端末では...) ▪ エンタープライズ向けのSaaSなのに...? ◦ UIビルダーの挙動がFlaky ▪ UIビルダーが固まるとか遅いとか、そういうレベル ◦ サポート体制: クリティカルなバグがあるのに、なかなか修正されない ▪ 例えばオンプレ版とクラウド版で挙動が微妙に違う、など ▪ エンプラサポートでもそこまで優先度上げてもらえない 課題 Problem
© tailor inc. 以下を満たすˮ何かˮが欲しい... • Retoolを使うのと同等レベルで高速なプロトタイピングができる ◦ 仮にそれが非フロントエンドエンジニアであったとしても。 • そのまま本番運用でき、パフォーマンス劣化を引き起こさずスケールさせられる
◦ 仮に何かトラブルが起きたとしても、エンジニアリングで解決できる 欲しいもの What we want
© tailor inc. プロトタイプをするデザイナの方と話して : 1. サイドバーやヘッダーのような大枠のナビゲーションやレイアウトについては顧客サイドから大きな要望 がくることは稀 2. コンテンツ部は只の全画面テーブルのこともあれば、業務のコアとなる画面では細かなレイアウトや
UX レベルの要求があることも多い。 3. データテーブルUIのコンポーネントでは見え方の細かいカスタマイズ要望が多い傾向 更にわかってきたこと Another findings カスタマイズが必要な ところ以外をサボりたい...
© tailor inc. プロトタイプをするデザイナの方と話して : 1. サイドバーやヘッダーのような大枠のナビゲーションやレイアウトについては顧客サイドから大きな要望 がくることは稀 ◦ ⇒ナビゲーションやベースのレイアウトは
OpinionatedなUIの基盤を提供 2. コンテンツ部は只の全画面テーブルのこともあれば、業務のコアとなる画面では細かなレイアウトや UX レベルの要求があることも多い。 ◦ ⇒パターンのある画面は GraphQLクエリから自動で作ってしまう ◦ ⇒開発工数を本当にカスタマイズが必要な画面だけに集中 3. データテーブルUIのコンポーネントでは見え方の細かいカスタマイズ要望が多い傾向 ◦ ⇒テーブルコンポーネントは頑張って内製 (地味に大変だが ...) 現時点でのアイデア Potential idea ここで Schema-driven したい!
© tailor inc. Schema-driven UI
© tailor inc. Schema-driven UI (fabrix) TailorではGraphQLをメインのAPIインターフェイスにしてい るので、ここから最低限の画面まで作れてしまえば、デリバ リまでのプロセスを効率化できるのでは ?
という仮説があっ た Approach いろいろ使えそうなライブラリはあったもの の、微妙に痒いところに手が届かず、将来的 なことを考えてOSSでReact用のライブラリを 作ることに。 https://github.com/fabrix-framework/fabrix
DEMO (prototype)
© tailor inc. まとめ • UIをカテゴリ(ドメイン?で括れば、なんとなくパターンが見えてくる ◦ 我々の場合はˮ業務システムˮというカテゴリ • 真心込めて作るべきところと、そうでないところを見分けて高速にデリバリーしていきましょう
◦ サボれるところは限界までサボりたい ◦ 我々の場合は、それが GraphQLベースのSchema-driven UIであるという仮説 • 人間が楽できるインターフェイスであれば、 AIにも優しい ◦ GraphQL書くくらいならAIにスキーマ定義食わせて自然言語で指示するのは余裕 Summary
© tailor inc. 比較検討候補 • Refine ◦ 求めるものとしては若干レイヤーが低い • ReactAdmin
◦ GraphQLアダプタのデザインが微妙 (全てのフィールドをselectionする挙動...) ◦ MUIベッタリなのは嬉しくない • NextAdmin ◦ インターフェイスはいいが、 Next+Prisma前提なので微妙 Appendix: comparison
© tailor inc. Thank you! 👋