$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プロジェクトを止めない。ライブラリの共存戦略とバージョンアップ/ChakraUI v3 Mig...
Search
SMS tech
September 25, 2025
0
130
プロジェクトを止めない。ライブラリの共存戦略とバージョンアップ/ChakraUI v3 Migration: Keeping Projects Running
SMS tech
September 25, 2025
Tweet
Share
More Decks by SMS tech
See All by SMS tech
マルチプロダクトのカオスを制す。「プロダクトディシジョンレコード」で実現するチーム横断のアラインメント戦略/Introduction to Product Decision Record
sms_tech
0
110
The Modelの罠を超える! 売上9割 "SLG" のVertical SaaSが挑む PLG × SLG ハイブリッド戦略 #pmconf2025/Defying "The Model": How a Vertical SaaS Integrates PLG into a 90% SLG Motion
sms_tech
1
1.6k
業務の本質理解から始まるリニューアル/ RethinkingBusinessEssenceforRenewal
sms_tech
0
220
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
3
1.3k
失敗ら再構築した開発推進チームの立ち上げ
sms_tech
0
760
一体いつから ――― DataLoader が 並列実行されていると錯覚していた?
sms_tech
0
360
カイポケリニューアル プロダクトマネジメントの現在地 / Where we are now with Kaipoke Renewal Product Management
sms_tech
0
1.2k
ユーザーに向き合うデザインが介護・福祉の現場を変える / User-facing design changes the field of care and welfare
sms_tech
0
520
Amazon CloudWatchで小さく始めるWebサービスのオブザーバビリティ / How to start Observability for Web Sevices with Amazon CloudWatch
sms_tech
5
1.4k
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Code Review Best Practice
trishagee
73
19k
Facilitating Awesome Meetings
lara
57
6.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Mobile First: as difficult as doing things right
swwweet
225
10k
RailsConf 2023
tenderlove
30
1.3k
How STYLIGHT went responsive
nonsquared
100
5.9k
Documentation Writing (for coders)
carmenintech
76
5.2k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
For a Future-Friendly Web
brad_frost
180
10k
Transcript
プロジェクトを止めない ChakraUI v3 移行戦略 原野誉大 @株式会社エス・エム・エス 2025-09-25 1
自己紹介 原野 誉大(はらの たかひろ) 入社 2023/10 主なスキルセット iOS Frontend(React/Next) 好き 趣味
対戦系のゲーム(最近はストリートファイター 6 が一番やってる) サウナ 2
今日お話しすること 機能開発しながらのライブラリの大規模移行戦略 1. 背景・課題整理 2. 戦略的アプローチ 3 選 段階的移行のための腐敗防止層 +
workspace 分割 AI 活用による効率化 データ駆動な優先度決定 3. まとめ 3
背景:なぜライブラリのアップデートが必要になったか プロジェクト状況と Chakra UI の状況 2021 年 フルリニューアル開始 2022 年
ChakraUI v2 採⽤決定 2024 年10 ⽉ ChakraUI v3 リリース 破壊的変更多数 2025 年 移⾏戦略実⾏中 2021 2022 2023 2024 2025 課題 Chakra v3 はほぼ全コンポーネントが内部的に書き直しされ、多くの破壊的変更が 入りました 新機能開発継続中での移行の難しさ 4
ChakraUI とは React 向け UI コンポーネントライブラリ シンプルで使いやすい コンポーネント群 アクセシビリティ に配慮した設計
テーマシステム でカスタマイズ可能 TypeScript 完全対応 // 使用例 <Button colorScheme="blue" size="md"> Click me </Button> 5
v3 の破壊的変更の具体例 Checkbox: シンプル → 複合コンポーネント // v2 <Checkbox defaultChecked>Checkbox</Checkbox>
// v3 <Checkbox.Root> <Checkbox.HiddenInput /> <Checkbox.Control> <Checkbox.Indicator /> </Checkbox.Control> <Checkbox.Label /> </Checkbox.Root> 6
アプローチ 7
戦略 1:段階的移行のための腐敗防止層 + workspace 分割 やりたかったこと コンポーネント単位でのバージョンアップ リスクの低下 タスクの細分化による作業並列化 pnpm
workspace の導入 Chakra-UI に依存した部分は別のパッケージ に切り出した メインのアプリが直接 Chakra-UI に依存しな いようにした 通常のプロジェクト アプリケーション node_modules/ chakra-ui pnpm workspace main-app packages/ ui-lib packages/ utils node_modules/ chakra-ui 8
workspace 構成の全体像 9
戦略 2:AI 活用による効率化 なぜ AI 活用を選んだのか なるべく少人数でも進められるようにしたい 場所によっては機械的な移行作業も多い 10
AI 活用の 2 つの領域 コンポーネントのバージョンアップ v2 のコンポーネントを参考に v3 のコンポーネントを生成する Chakra
が提供している MCP サーバー + ClaudeCode の利用 現在の利用箇所の replace 作業 既存コンポーネント → 新 v3 コンポーネントに置換 V3 向けの IF の修正 import 文の書き換え 11
Claude Code Hook を使った移行の例 12
AI を利用した感想 移行精度 シンプルなコンポーネント:高精度で移行可能 複雑なコンポーネント:手動調整が必要 13
戦略 3:データ駆動な優先度決定 課題 移行が必要なコンポーネントが 80 個以上ある、どういう順番で進めると良いか 移行する 70 個のコンポーネントの中に依存関係があり、順番を考える必要があっ た
やりたいこと なるべく工数は小さく、より利用されているコンポーネントから順番で進めたい やったこと 移行が簡単なコンポーネントの可視化 コンポーネントごとの利用状況の可視化 14
2 つの評価軸 移行の簡単さ:dependency-cruiser コンポーネント間の依存関係を可視化 依存数少 = 移行容易 移行の効果:ast-grep コンポーネントの利用頻度を調査 使用頻度高
= 効果大 15
移行戦略 16
現在の状況 戦略確立:3 つのアプローチで移行の方針は完成 体制構築:2 名 →6 名の段階的チーム拡大 移行実践:継続開発を止めずに進行中(まだまだ走り始めです) 17
まとめ 機能開発しながらのライブラリの大規模移行戦略 1. 段階的移行のための腐敗防止層 + workspace 分割 2. AI 活用による効率化
3. データ駆動な優先度決定 話せなかったこと v3 にあげたことの影響を最小限にする VRT の仕組み バージョンアップに伴う影響のデザイナーとの協業 発表準備での AI 活用の話 18
ありがとうございました! 19