[iOS]SPMライブラリを自作

自作ライブラリをOSSとして公開したいと思い、作成しました。初めての自作ライブラリです。
ライブラリにすることは利点が多いです。ライブラリで担当するべき機能の境界がはっきりしますし、再利用性も上がります。バージョン管理もできますし、使ってくれる人がいればフィードバッグももらえます。

環境・技術

- Xcode12.2
- iOS13以降
- Swift Package Manager
- SwiftUI
- 他の依存関係なし

Swift Packageプロジェクトを作成

参考:Creating a Standalone Swift Package with Xcode
Xcodeメニュー>File>New>Swift Package
から作成します。

スクリーンショット 2020-12-03 9.58.31

デモ用プロジェクトを作成しパッケージを追加

参考:Editing a Package Dependency as a Local Package
先ほど作成したPackageを使うためのデモ用プロジェクトを作成します。詳しい方法は割愛します。
デモ用プロジェクトを作成する利点ですが、Packageに余計なソースコードを入れないということが挙げられます。デモプロジェクトについては、READMEにリポジトリ情報を記載するとなお良いかと思います。

プロジェクトを作成したら、先ほど作成したSwift Packageをドラッグ&ドロップで追加します。この方法ですと、Swift Packageを編集しgithubにアップロードしたり、使う側でSwift Packageの更新をしなくて済みます。

スクリーンショット 2020-12-03 10.11.00

Framework, Libraryとして依存関係に追加(ドキュメントに書いてなかったこと)

Packageフォルダを追加する方法で、ドキュメントに書かれていなかったことがありました。フォルダをドラッグ&ドロップするだけでは、ライブラリをimportすることができませんでした。解決するためには以下の操作が必要です。

プロジェクト設定>General>Frameworks, Libraries and Embedded Contentで追加したライブラリを選択

スクリーンショット 2020-12-03 10.27.36

開発・デバッグする際の注意点

SwiftUIベースのライブラリを今回作成しましたが、注意点があります。
SwiftUIのプレビュー機能はSwift Package側では今の所使えないという点です。(参考

リポジトリ

今回作成したSwift Packageとデモプロジェクトはこちらです。
https://github.com/usk2000/ChartSwift
https://github.com/usk2000/ChartSwiftDemo

参考文献

Swift Packages
Creating a Standalone Swift Package with Xcode
Developing a Swift Package in Tandem with an App
Editing a Package Dependency as a Local Package




いいなと思ったら応援しよう!