Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プロジェクトを止めない。ライブラリの共存戦略とバージョンアップ/ChakraUI v3 Mig...
Search
SMS tech
September 25, 2025
0
140
プロジェクトを止めない。ライブラリの共存戦略とバージョンアップ/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
1k
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
0
2.2k
業務の本質理解から始まるリニューアル/ RethinkingBusinessEssenceforRenewal
sms_tech
1
230
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
3
1.4k
失敗ら再構築した開発推進チームの立ち上げ
sms_tech
0
810
一体いつから ――― DataLoader が 並列実行されていると錯覚していた?
sms_tech
0
380
カイポケリニューアル プロダクトマネジメントの現在地 / 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
540
Amazon CloudWatchで小さく始めるWebサービスのオブザーバビリティ / How to start Observability for Web Sevices with Amazon CloudWatch
sms_tech
5
1.4k
Featured
See All Featured
Designing for Timeless Needs
cassininazir
0
87
Agile that works and the tools we love
rasmusluckow
331
21k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
23
How to Talk to Developers About Accessibility
jct
1
82
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
48
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
390
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
320
How GitHub (no longer) Works
holman
316
140k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
400
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
64
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