【Swift】CocoaPodsからSwift Package Managerに移行しようとして辞めた話

株式会社ブリッジゲートさんの記事で以下のような記事があり、興味があったので現在開発してAppStoreに公開して運用している「ポケカデッキ管理」アプリを移行してみようと思いました。

https://blitzgate.co.jp/blog/2234/

紹介:ポケカデッキ管理で現在使っているライブラリ

target '---------' do
 pod 'RxSwift' 
 pod 'RxCocoa' 
 pod 'Google-Mobile-Ads-SDK'
 pod 'SwiftyStoreKit'
 pod 'IQKeyboardManagerSwift'
 pod 'SwiftReorder'
 pod 'SideMenu', '~> 6.0'
 pod 'Kingfisher'
 pod 'SVProgressHUD'
end

一般的なライブラリを導入していますが、一部触れておきます。

SwityStoreKitは課金を簡単に実装できるライブラリです。
IQKeyboardManagerSwiftはiOSアプリ内でキーボードが隠れる位置のテキストフィールドを押下した場合に自動でスクロールするライブラリです。
SwiftReorderはセルの入れ替えを出来るライブラリです。
SideMenuは左側にサイドメニューを表示するライブラリです。
Kingfisherは隠れた名ライブラリで指定URLの画像をダウンロードして表示する為に利用しております。テーブルビューのスクロールを行って、セルの再利用を何度も繰り返しても、最初にダウンロードしているイメージを維持し続ける点が魅力的です。
SVProgressHUDはObjective-Cで公開されているライブラリですが、レイアウトが好きなので使っています。

参考にした記事

実際どんな感じだったか

冒頭に貼った株式会社ブリッジゲートさんの記事を参考にもしておりますが、一部のライブラリがSwiftPMに対応していないんですよね。

<引用>
使用していたライブラリがまだSwiftPMに対応していない時もあると思います。
そういう時は、下記のような手段を試してみましょう。
・対象のリポジトリをフォーク
・パッケージ記述ファイル(Package.swift)を追加
・変更をコミットしてプッシュ
・Xcodeで独自の分岐リポジトリURLを使用
・プルリクエストを作成

上記の方法などあるようですが、複数ライブラリがあれば対応する必要があり、現時点では不要なメンテナンスコストが発生すると考えました。

Google-Mobile-Ads-SDKが今回扱ったライブラリでは対応しておりませんでした。このライブラリはGoogle広告を表示するライブラリです。

Googleさんでも対応していないんですよね…先行きは不安な気がします。

今後について

今後開発現場でSwiftPMでライブラリを実装するという場面に多く遭遇していたら利用を検討していますが、実際はXcode内で選択・削除するだけで踏み込んだコマンドラインで操作出来ない点などCocoaPodsに優位性はまだあるように思えるので、私はCocoaPodsでライブラリ管理していこうと思っています。

新規プロジェクト立ち上げて、全部のライブラリのgit urlを出して操作して追加するのも大変ですよね。

Podfileをコピーすれば終わりですからね。CocoaPodsは。


この記事が気に入ったらサポートをしてみませんか?