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
プロジェクトを止めない。ライブラリの共存戦略とバージョンアップ/ChakraUI v3 Mig...
Search
SMS tech
September 25, 2025
0
84
プロジェクトを止めない。ライブラリの共存戦略とバージョンアップ/ChakraUI v3 Migration: Keeping Projects Running
SMS tech
September 25, 2025
Tweet
Share
More Decks by SMS tech
See All by SMS tech
業務の本質理解から始まるリニューアル/ RethinkingBusinessEssenceforRenewal
sms_tech
0
160
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
2
1.2k
失敗ら再構築した開発推進チームの立ち上げ
sms_tech
0
510
一体いつから ――― DataLoader が 並列実行されていると錯覚していた?
sms_tech
0
300
カイポケリニューアル プロダクトマネジメントの現在地 / Where we are now with Kaipoke Renewal Product Management
sms_tech
0
1.1k
ユーザーに向き合うデザインが介護・福祉の現場を変える / User-facing design changes the field of care and welfare
sms_tech
0
470
Amazon CloudWatchで小さく始めるWebサービスのオブザーバビリティ / How to start Observability for Web Sevices with Amazon CloudWatch
sms_tech
4
1.3k
SaaSのマーケティングを進めるサービスサイトを育てる取り組み / Designship 2024 Main Stage
sms_tech
1
1.9k
GitHub Actions で始める Salesforce CI
sms_tech
0
830
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
Building Applications with DynamoDB
mza
96
6.6k
KATA
mclloyd
32
14k
Context Engineering - Making Every Token Count
addyosmani
3
140
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Language of Interfaces
destraynor
162
25k
GitHub's CSS Performance
jonrohan
1032
460k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
A Tale of Four Properties
chriscoyier
160
23k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
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