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
アンドパッドにおける CocoaPods ライブラリ群の SwiftPackageManage...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ANDPAD inc
February 26, 2025
Programming
0
320
アンドパッドにおける CocoaPods ライブラリ群の SwiftPackageManager への移行戦略
髙木 友稀
@kiwi_yuki
2025 年 2 月 26 日
食べログ x ANDPAD x Sansan モバイル勉強会 #2
ANDPAD inc
February 26, 2025
Tweet
Share
More Decks by ANDPAD inc
See All by ANDPAD inc
小規模 SRE チームで支える、 Atlantis で実現するインフラ管理のセルフサービス化
andpad
0
18
Go コードベースの構成と AI コンテキスト定義
andpad
0
170
「もっと正確に、もっと効率的に」ANDPADの写真書き込み機能における、 現場の声を形にしたエンハンス
andpad
0
710
複数チーム並行開発下でのコード移行アプローチ ~手動 Codemod から「生成AI 活用」への進化
andpad
0
250
Building the Real World with Ruby
andpad
0
55
Catch Up: Go Style Guide Update
andpad
0
310
OSS開発者という働き方
andpad
5
1.9k
Vue・React マルチプロダクト開発を支える Vite
andpad
0
180
プロダクト開発を支えるデータ利活用:中央集権から「民主化」までの軌跡
andpad
0
260
Other Decks in Programming
See All in Programming
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
160
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
180
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
200
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.7k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
220
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.8k
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
550
Implementation Patterns
denyspoltorak
0
270
AIエージェントの設計で注意するべきポイント6選
har1101
7
3.3k
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
350
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
580
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
120
Featured
See All Featured
Code Review Best Practice
trishagee
74
19k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Art, The Web, and Tiny UX
lynnandtonic
304
21k
The Limits of Empathy - UXLibs8
cassininazir
1
210
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
300
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
85
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
52
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
57
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
280
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
150
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
150
Transcript
© 2025 ANDPAD All Rights Reserved. 1 CocoaPods ライブラリ群の SPM
への移行戦略 Yuki Takagi
© 2025 ANDPAD All Rights Reserved. Confidential 2 Swift Package
Manager 対応、おわってますか? - CocoaPods の Trunk が Read Only へ 2年以内の移行* - 新規の追加、既存の更新が不可能になる - アンドパッドでは現役で CocoaPods のライブラリを使用 * https://blog.cocoapods.org/CocoaPods-Specs-Repo
© 2025 ANDPAD All Rights Reserved. Confidential 3 アンドパッドの iOS
アプリの現状 - アンドパッドでは複数の社内ライブラリを CocoaPods モジュールとして管理* - 各チームがそれぞれのタイミングで移行する - 一時的に SPM / CocoaPods 両対応 CocoaPods アプリ * https://tech.andpad.co.jp/entry/2022/04/28/100000
© 2025 ANDPAD All Rights Reserved. Confidential 4 やること -
移行対象のライブラリが依存しているライブラリがすべてSPM 対応しているかを確認する - podspec をみる - 未対応の場合 → まずはそれを移行するなどして頑張る - Package.swift にライブラリを追加 - コードを修正していく - Bundle を修正する / - #if SWIFT_PACKAGE で分岐 - Storyboard を修正する
© 2025 ANDPAD All Rights Reserved. Confidential 5 難しいところ -
複雑な依存関係が大変 - Flutter Package もある - 強く依存している / SPM 対応してないライブラリ - 実行時にクラッシュする - リソースの取得 - Bundle - ✅ Bundle.module - ❌ Bundle(for: type(of: self)) - Storyboard
© 2025 ANDPAD All Rights Reserved. Confidential - Flutter Package
もある - Flutter の SPM 対応待ち* 6 難しいところ - Flutter Package も考慮する 社内ライブラリ(CocoaPods) アプリ * https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-plugin-authors
© 2025 ANDPAD All Rights Reserved. Confidential - Flutter Package
もある - Flutter の SPM 対応待ち* 7 難しいところ - Flutter Package も考慮する 社内ライブラリ(Flutter Package) アプリ 社内ライブラリ(CocoaPods) * https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-plugin-authors
© 2025 ANDPAD All Rights Reserved. Confidential - 強く依存している /
SPM対応してないライブラリ - RxSwift などほぼ全てに依存しているライブラリがある - 一部だけの SPM 移行を妨げる 8 難しいところ - 複雑な依存関係 Rx Swift 社内ライブラリ(CocoaPods) アプリ 社外ライブラリ(CocoaPods)
© 2025 ANDPAD All Rights Reserved. Confidential 9 難しいところ -
実行時にクラッシュする - Bundle の取得時に実行時クラッシュする - CocoaPods / SPM どちらの環境か確認してBundleを返す
© 2025 ANDPAD All Rights Reserved. Confidential 2022年4月より現職の iOS アプリエンジニア
GitHubActions、Bitrise の CI/CD の整備やメンテナンスし、効率 的な開発環境の構築に興味がある 趣味はキャンプやラーメン巡り X: https://x.com/kiwi_yuki 高木 友稀 株式会社アンドパッド 開発本部 SWE Profile | 経 歴 10 自己紹介
© 2025 ANDPAD All Rights Reserved. Confidential 11 まとめ -
アンドパッドにおけるライブラリ群の現状 - CocoaPods のライブラリを SPM 対応する際のやることを紹介 - 実際にやってみる際に辛いポイントを紹介 - Flutter への依存 - ほかライブラリへの依存により、部分的な移行が難しい - 実行時クラッシュ