こんにちは!クラシルiOSアプリを開発しているknchstです。
この記事は「dely #2 Advent Calendar 2021」の 11日目の記事になります。
dely Advent Calendar 2021 - Adventar
昨日は yochidros さんの「SwiftUI をクラシルに導入した話」でした。
SwiftUIをクラシルに導入した話 - dely tech blog
クラシルではパッケージマネジメントを CocoaPods & PodBuilder の組み合わせで行っています。それまでは特にパッケージマネジメントに注力することなく、Carthage で導入できるものは Carthage で、それ以外のものは CocoaPods で、というような運用をしていました。
その後アプリケーション起動速度の問題を発端に起動速度改善PJT、そしてリアーキテクチャPJTと長年運用してきたアプリを本格的に見直すタイミングが来たことで改めてパッケージマネジメントについて考えることにしました。
この記事では iOS 開発時のパッケージマネジメントをいい感じにしたい人に向けにクラシルで行ったプラクティスをシェアします。当然完璧なものではなく、あくまでその当時のクラシルでベストだと思った選択を行っただけなのでご了承ください。またコードなどは記事用にアレンジしたもので実際のものとは異なるので正常に動作することを保証できないのでご了承ください。
CocoaPods & PodBuilder の組み合わせになるまでは、Carthage と CocoaPods を併用するという一般的なものでした。
それぞれ以下のような役割と構成で運用を行っていました。