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
3リポジトリーを2ヶ月でモノレポ化した話 / How I turned 3 repositor...
Search
Masatoshi Kubode
January 20, 2026
Technology
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
3リポジトリーを2ヶ月でモノレポ化した話 / How I turned 3 repositories into a monorepo in 2 months
https://wantedly.connpass.com/event/377759/
Masatoshi Kubode
January 20, 2026
More Decks by Masatoshi Kubode
See All by Masatoshi Kubode
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
150
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
1.3k
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
730
技術を根付かせる / How to make technology take root
kubode
1
500
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
650
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
1
1.4k
Make your Android app into Multiplatform app
kubode
0
240
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
1
1.5k
Jetpack ComposeのBottomSheetとの戦い / Fight with BottomSheet of Jetpack Compose
kubode
0
1.1k
Other Decks in Technology
See All in Technology
どうして今サーバーサイドKotlinを選択したのか
nealle
0
210
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
360
Why is RC4 still being used?
tamaiyutaro
0
310
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
1.9k
AI時代における最適なQA組織の作り方
ymty
3
460
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
20260702_生成AIはどこまで成長するのか_チャットだけじゃない世界
doradora09
PRO
0
110
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
220
Baseline対応のDOMの型定義を作った
uhyo
3
720
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
570
AI Driven AI Governance
pict3
0
260
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
Code Reviewing Like a Champion
maltzj
528
40k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
エンジニアに許された特別な時間の終わり
watany
107
250k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
Leo the Paperboy
mayatellez
8
1.9k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
390
What's in a price? How to price your products and services
michaelherold
247
13k
GraphQLとの向き合い方2022年版
quramy
50
15k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Scaling GitHub
holman
464
140k
Visualization
eitanlees
152
17k
Transcript
© 2026 Wantedly, Inc. KMP/iOS/Androidを 2ヶ月でモノレポ化した話 モバイル勉強会 #23 2026/01/20 -
久保出雅俊
© 2026 Wantedly, Inc. wantedly.com/id/kubode @swiz_ard @kubode
© 2026 Wantedly, Inc. 01 なぜ移行したか 02 どうやって移行したか 03 まとめ
CONTENTS
© 2026 Wantedly, Inc. なぜ移行したか 01
© 2026 Wantedly, Inc. 従来の構成
© 2026 Wantedly, Inc. 課題 詳細 リードタイム KMP変更のたびに 最低20分 待ち(Publish
→ CI → 反映) 破壊的変更 意図しない破壊的変更に 気づけない(別リポジトリでCIが走る) iOS開発体験 コードジャンプ不可、ブレークポイント不可(バイナリ配布のため) Xcodeキャッシュ KMPアップデート時に Clean Build必須(Xcode 16の問題) チーム分割 複数チーム間でKMP配布タイミングが 衝突 担当者固定化 KMPメンテナーが固定化、リソースの流動性低下 従来の課題
© 2026 Wantedly, Inc. 移行後の構成 visit-app/ ├── shared/ # KMP
├── iosApp/ # iOS └── androidApp/ # Android
© 2026 Wantedly, Inc. どうやって移行したか 02
© 2026 Wantedly, Inc. • 要件定義 ◦ Git履歴を保持する(`git blame` で過去の変更を追跡可能に)
◦ 移行前後で新旧リポジトリでの並行開発ができる • PoC ◦ git-filter-repo: 履歴を保持したままリポジトリを統合できるツール ▪ リポジトリの全履歴をサブディレクトリに移動できる ◦ CI/CDの移行が可能か 計画 要件定義とPoC
© 2026 Wantedly, Inc. 統合スクリプトの作成 AIでスクリプトを作成 あなたはgitや周辺ツールに詳しいシニアエンジニアとなって、以下の指示に従います。 ## 背景・現状 現在のディレクトリには、次の3つのサブディレクトリが存在します。
* app-android/ (default branch: develop) * visit-ios/ (default branch: develop) * visit-app-shared/ (default branch: master) これらはそれぞれ独立したGitリポジトリとして管理されています。 各リポジトリの全履歴(commit履歴)を保ったまま、新しい統合ディレクトリを構築したいで す。 目的・ゴール 新たに visit-app/ ディレクトリを作成し、3つのリポジトリを以下のようにサブディレクトリと して統合したいです。 * app-android/ → visit-app/androidApp/ * visit-ios/ → visit-app/iosApp/ * visit-app-shared/ → visit-app/shared/ 各サブディレクトリに元リポジトリの履歴が完全に残る形にしたいです。 ## 要望事項 * 統合対応に最適なGitコマンドやツール(例:git-filter-repo)を利用した、具体的な1つの シェルスクリプト(shファイル)を作成してください。 * スクリプトはgit-filter-repo公式ドキュメント(git-filter-repo.html)の推奨に従った内容とし てください。 * visit-app/ のdefault branchはdevelopにしてください。 * visit-app/ 及びそのサブディレクトリがすでに存在する場合もあります。削除して作り直 さず、各サブディレクトリのgitの差分を反映するようにしてください。 * 履歴の統合後、最終的なvisit-app/ディレクトリが以下の構造になることを保証してくださ い。 visit-app/ ├── androidApp/ # app-androidの内容(履歴付き) ├── iosApp/ # visit-iosの内容(履歴付き) └── shared/ # visit-app-sharedの内容(履歴付き) * 実行前後の注意点や検証ポイント(例:git-filter-repoのインストール確認、統合後の履 歴確認など)があれば付記してください。 * 不確実なことがあれば質問し返して質を向上させてください。
© 2026 Wantedly, Inc. • List Item 1 ◦ List
Item 1-1 • List Item 2 ◦ List Item 2-1 • List Item 3 ◦ List Item 3-1 iOSのローカルビルド KMP標準機能で簡単移行
© 2026 Wantedly, Inc. • List Item 1 ◦ List
Item 1-1 • List Item 2 ◦ List Item 2-1 • List Item 3 ◦ List Item 3-1 Androidのローカルビルド Composite Buildで簡単に結合
© 2026 Wantedly, Inc. • gradlewがXcode上でハング ◦ Xcode pre-actions で
gradlew を実行するとプロセスがハングする ◦ https://github.com/gradle/gradle/issues/15941 ◦ 👉 ./gradlew … < /dev/null • OSS licenses plugin の問題 ◦ AndroidのOSS一覧のプラグイン ◦ モノレポ構成との相性問題 ◦ 👉 別のプラグインに置き換え 発生した課題 ハマったポイント
© 2026 Wantedly, Inc. まとめ 03
© 2026 Wantedly, Inc. • 事前準備がすべて • KMPのツールが充実していて、簡単に移行できた • チーム内のフィードバックもポジティブ
◦ KMPの変更がアトミックになり、破壊的変更に気づきやすく、対処しやすくなった ◦ CI/CDの待ち時間が減り、開発パフォーマンスが向上した • 細かい課題やCI/CDの話はブログで まとめ モノレポ化の事例を紹介