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
HRTech SaaSで開発している共通UIライブラリについて
Search
shippokun
April 06, 2023
How-to & DIY
220
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HRTech SaaSで開発している共通UIライブラリについて
https://anotherworks.connpass.com/event/276673/
shippokun
April 06, 2023
Other Decks in How-to & DIY
See All in How-to & DIY
なぜISPでオリジナルカードゲームを作ったのか?制作者と対談 - NIFTY Tech Talk #25
niftycorp
PRO
0
140
AWS Community Builders Update - JAWS-UG Tokyo and Sainokuni
awsjcpm
3
320
ライブ感を生む 巻き込み型スライドの作り方/Create your slide like a heavy metal concert
ikuodanaka
5
1.7k
大量のiOSシミュレータにアプリをインストールする
gurrium
0
180
10分de名コミュ “最高の自分”を演じ憧れの同業者と渡り合う
subroh0508
1
680
JAWS-UG/AWSコミュニティ アップデート (JAWS-UG函館支部)
awsjcpm
3
190
MustをWillに変える技術 〜アイドル・郁田はるきが"すべき"の壁を超えるまで〜
subroh0508
1
2.1k
エッジAIでBBQの肉の焼き加減判定をやってみた #iotlt #seeed
n0bisuke2
2
370
JAWS-UG/AWS Community Update 2026年6月20日JAWS-UG FUKUOKA #26 JAWS DAYS 2026 re:Cap! おつかれせいけしろー
awsjcpm
0
150
生成AIは 『コードを書く』だけじゃない アーキテクチャ設計から環境構築まで——社内データ活用DXの全貌
punipuni_mint
0
230
ドローンをAWSで制御してみた
nagi900
0
190
あなたは何故コミュニティに参加するのか?
awsjcpm
3
440
Featured
See All Featured
HDC tutorial
michielstock
2
880
30 Presentation Tips
portentint
PRO
1
400
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
900
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
WCS-LA-2024
lcolladotor
0
830
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
540
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
550
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
Transcript
HRTech SaaSで開発している共 通UIライブラリについて Front-end Meetup 2023
株式会社HRBrain SubTL 岩本 佳吾 3年弱ほど新卒入社した家具ECサイトを経 営する会社で社内システムの開発を主にし ていました。 弊社ではUIライブラリの刷新、タレントマネジ メント開発に従事しています。 あだ名は「しっぽくん」
Abstract 今回は弊社で開発・運用しているUIライブラリの1年間の運用方法と課題感に ついてお話します。 技術選定やコンポーネント作成については今回は深堀りはしません。 主に専任チームはないが社内でUIライブラリを運用している・しようとしている 人に対してなにかしら役に立つことが話せたらと思います。
今回お話するトピック ・HRBrainでのUIライブラリの立ち位置 ・運用体制・これまでの開発 ・採用技術 ・一部コンポーネント紹介 ・運用していく中での課題感と対策 ・UIライブラリを開発していく中で難しい部分としくじり ・まとめと今後
HRBrainでのUIライブラリの立ち位置 ・複数のプロダクトと今後も増える ・プロダクトとは別にドメイン知識を持っ たWeb Components ・様々なFormに対応するため カスタマイズ性が求められる ・優秀なデザイナー陣による監修
UIライブラリの運用体制 ・専任チームはおらずOwner1名のベストエフォートで対応 ・プロダクト開発しているメンバーがコントリビュートする状態 ・デザインはプロダクトデザイナーチーム全員で取りまとめ
これまでの開発 ・プロダクト間で共通のUIでデザインが作成されていることも多く、 3年ほど前からUIライブラリの作成を始めた ・3年間でプライベート、パブリック、モノレポと管理方法が変化 → 現在はプライベート ・ここ1年でデザインリニューアルが始まり、UIライブラリも刷新へ
採用技術 ・React.js x TypeScript ・webpack ・styled-components ・開発する際に利用 ・Chromatic(Storybook公開・デザインレビュー) ・Hygen(テンプレート)、Ship.js(リリース自動化) ・ライブラリ公開:GitHub
Packages
一部紹介 ・カラーコードの集約
一部紹介 ・基本的なButtonコンポーネントを始め、PulldownやDatePickerなどのデータ 入力のために必要不可欠なコンポーネントも提供
運用のスタンス ・いわゆる社内OSSのような管理 ・そのために人によって差が出にくい施策を用意 右図はデザイナーが コントリビュートチャンスを 狙っている図
運用施策 ・コンポーネントなど追加を簡単にするためにテンプレートを用意 ・export記述やラベル作成などを1コマンドで生成可能 https://www.hygen.io/ を採用
運用施策 ・Ship.jsによる自動リリース(2回クリックでリリースできる状態に!)
運用していく中での課題感 ・専任メンバーがいないため継続的な開発が困難 ・リリースした内容の認知度が低い
運用していく中での課題感 ・専任メンバーがいないため継続的な開発が困難 ・要望をIssue化・ラベリングしコンポーネントが抱えている課題を リストアップ → 開発ポイント明確化 ・新規開発メンバーにGoodFirstIssueをアサインし改善と認知度向上 ・リリースした内容の認知度が低い
運用していく中での課題感 ・専任メンバーがいないため継続的な開発が困難 ・リリースした内容の認知度が低い ・リリース内容をSlackへ自動転送 ・詳細とChromaticの該当リンクを添付
UIライブラリを開発していく中で難しい部分 ・どこまでUIライブラリが責務を持つのか? ・例えばバリデーション ・標準のInput要素にあるmin,maxを自作UIライブラリでも実装? ・他にもエラーメッセージなど ・一定のルールを定めたり、柔軟に対応できる機能提供をする ・バリデーションは利用側で複数定義しUIライブラリ側で順次適応
UIライブラリを開発していく中で起こったしくじり ・根本的にコンポーネントを作り変えた ・古いコンポーネントを非推奨へ ・メジャーバージョン4つほど経て削除することに ・古いコンポーネントからデグレしていた機能があり、 バージョンアップできないと問題に! ・インテグレーションテストなどで動作担保をするべきだった ・この反省を踏まえて徐々にStorybookのインテグレーションを導入中
まとめと今後 ・貢献しやすい状態を作り出すことで継続的な改善をする ・UIライブラリとプロダクトの責務を定義することで迷わない開発に ・自分でUIライブラリを開発・活用してみたいという人は是非!! ・今回お話出来なかったコンポーネント実装などは交流会で👏