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
190
アンドパッドにおける 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
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
320
読もう! Android build ドキュメント
andpad
1
410
Flutter は DCM が 9 割
andpad
1
280
Amplify で SPA をホスティングする際の注意点
andpad
1
250
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
andpad
0
120
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
550
本編では話さない Zig の話
andpad
2
360
"noncopyable types" の使いどころについて考えてみた
andpad
0
520
ANDPAD黒板のオフラインモード機能 リリースまでの軌跡
andpad
0
710
Other Decks in Programming
See All in Programming
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
520
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
120
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
10
5.8k
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
170
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
400
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
150
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
160
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
210
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
1
6.1k
Advanced Micro Frontends: Multi Version/ Framework Scenarios @WAD 2025, Berlin
manfredsteyer
PRO
0
210
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Speed Design
sergeychernyshev
32
1k
Designing for humans not robots
tammielis
253
25k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Writing Fast Ruby
sferik
628
62k
The Invisible Side of Design
smashingmag
301
51k
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 への依存 - ほかライブラリへの依存により、部分的な移行が難しい - 実行時クラッシュ