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
ANDPAD inc
February 26, 2025
Programming
0
170
アンドパッドにおける 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
読もう! Android build ドキュメント
andpad
1
370
Flutter は DCM が 9 割
andpad
1
250
Amplify で SPA をホスティングする際の注意点
andpad
1
220
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
andpad
0
98
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
500
本編では話さない Zig の話
andpad
2
330
"noncopyable types" の使いどころについて考えてみた
andpad
0
480
ANDPAD黒板のオフラインモード機能 リリースまでの軌跡
andpad
0
580
アンドパッドのマルチプロダクト戦略を支える SRE
andpad
1
340
Other Decks in Programming
See All in Programming
DevDay2025-OracleDatabase-kernel-addressing-history
oracle4engineer
PRO
7
1.7k
try-catchを使わないエラーハンドリング!? PHPでResult型の考え方を取り入れてみよう
kajitack
3
380
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
7
400
Cursor Meetup Tokyo ゲノミクスとCursor: 進化と制約のあいだ
koido
2
590
マテリアルって何者?RealityKitで扱うマテリアル入門
nao_randd
0
140
TSConfig Solution Style & subpath imports to switch types on a per-file basis
maminami373
1
180
JSAI2025 RecSysChallenge2024 優勝報告
unonao
1
390
Blueskyのプラグインを作ってみた
hakkadaikon
1
300
Perlで痩せる
yuukis
1
670
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
0
160
#QiitaBash TDDでAIに設計イメージを伝える
ryosukedtomita
2
1.6k
抽象データ型について学んだ
ryounasso
0
210
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
For a Future-Friendly Web
brad_frost
178
9.8k
Building Applications with DynamoDB
mza
95
6.4k
Designing for Performance
lara
608
69k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
A better future with KSS
kneath
239
17k
4 Signs Your Business is Dying
shpigford
183
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Writing Fast Ruby
sferik
628
61k
The Cost Of JavaScript in 2023
addyosmani
49
8.2k
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 への依存 - ほかライブラリへの依存により、部分的な移行が難しい - 実行時クラッシュ