iOSDC Japan 2021で 「Swift Package中心のプロジェクト構成とその実践」についてお話しします

iOSDC Japan 2021で 「Swift Package中心のプロジェクト構成とその実践」についてお話しします

追記:トークの日時と場所

9/19 (日)14:50〜 Track Cで開催です。
おやつの時間にちょうどいいのでぜひお菓子やコーヒーをご持参ください。コーヒーがご自宅にないよという方はこちらで購入してみてください。前職のプロダクトです。

近所にKITASANDO COFFEEやTAILORED CAFEがあるという方は事前にアプリでオーダーしておくと便利ですね(前職のプロダクトです)。

前提:全部理解できなくて当然。気楽に聞いてください

スピーカーは、一期一会である登壇の時間で、聞きに来てくださるみなさんにできるだけ内容を理解してもらうために準備します。

しかしながら、カンファレンスというのはたくさんのスピーカーが色々な内容をトークする場所です。一回聞いただけですべてを理解できたとしたら、それはわたしの説明がとても優れているか、あなたの理解力がすばらしいのか、そのトピックをすでに理解していてスピーカーより詳しいということになります。

トークはすべて録画されて後日公開されることになっています。当日は頭の中にインデックスを貼り、後日気になったところをゆっくりキャッチアップすることも可能です。ぜひ気楽な気持ちで聞いていただきたいと思います。

トークを聞いて理解できなかったことは、その後に設けられるAsk the speakerで質問できるようになっています。登壇中は録画されたものを眺めるだけの一方通行ですが、Ask the speakerはインタラクティブに設計されているはずなので、ぜひお話できることを楽しみにしています。

トークの構成と対象

※トークの内容や構成は予告なく変更することがあります。

このトークは三部に分けて構成しています。それぞれにおいてターゲットが異なるので、参考にしてください。

1. CocoaPodsやCarthageからSwiftPMに移行する
2. ソースコードの管理をSwift PMに移譲する
3. Swift PMで複数のモジュール・プロジェクトを運用する

1. CocoaPodsやCarthageからSwiftPMに移行する

対象:これからSwiftPMを利用しようと考えている方 / SwiftPMという言葉を初めて聞いた方
前提知識:基本的なXcodeの使い方を理解していること

Swift Package Managerについて基本的な事柄を解説します。XcodeのGUIを利用して具体的なライブラリを導入します。バージョンの指定について説明し、自分のプロジェクトでライブラリを導入してみたり、CocoaPodsやCarthageから移行できることを目指します。

2. ソースコードの管理をSwift PMに移譲する

対象:プロジェクトの構成をシンプルにしたい方 / プロジェクトファイルのコンフリクトに疲弊している方
前提知識:Package Manager (CocoaPods / Carthage / Swift PM)を利用してFrameworkをAppに追加できること(XcodeGenなどのツールの利用経験は問いません)

Package.swiftを利用して、Swift PMがライブラリを管理するだけでなく、プロジェクトの構成をシンプルにできることを示します。AssetsやLocalizable.stringのようなリソースファイルも取り扱います。これにより、xcodeprojファイルの責務が軽くなることを示します。

ここまでの知識で既存のプロジェクトをSwift PMを利用した構成に移行していくことは十分に可能です。

3. Swift PMで複数のモジュール・プロジェクトを運用する

対象:1つのworkspaceで複数のモジュールやプロジェクトを運用することに興味がある方
前提知識:importとlink、モジュール、フレームワークが何を指すのかを知っている、聞いたことがある / Static link, Dynamic linkの違いを知っている

応用編です。SwiftPMにより実現するマルチモジュールと、責務が軽くなったxcodeprojを複数入れることで色々なことが実現できます。しかもこの構成が無理なく実現できることをご理解いただけると思います。

時間が許せば、新規/既存のプロジェクトにどうやって導入していくのがいいのかもお伝えできたらと思います。

importとリンクの話は、岸川さんのトークがとても勉強になるので、今一度ご覧になってから来てもらえるとうれしいです
https://www.youtube.com/watch?v=FZoYyAEPJ8w

投稿したプロポーザル

Swift Package Manager(以下Swift PM)はXcodeに統合された公式のパッケージマネージャーです。
CocoaPodsやCarthageのように、他の方が作ったライブラリを導入・管理することができます。
しかし、Swift PMが管轄するのはライブラリに留まりません。
Xcodeと組み合わせることにより、アプリのプロジェクト構成を柔軟に変更することができます。
特別なツールを利用することはありません。これまで開発者を苦しめていたXcodeプロジェクトファイルのコンフリクトを解消するだけでなく、
マルチモジュールにおけるFrameworkの参照やリンクといった、手動で設定するには面倒な項目も簡単にセットアップできます。
このトークでは、まず、Swift PMをまだ利用したことがない方に向けてSwift PMの基本的な事柄をお話しし、Swift PMでのライブラリ管理をお手元のプロジェクトで利用できるようにします。
次に、Swift PMをアプリ開発のプロジェクトに導入することで、Assetsやローカライズファイルを含むほとんどのソースコードの管理をSwift Packageに移管する方法をお話しし、Xcode Projectの責務を軽くします。
そうして身軽になったXcode Projectを、今度は複数作ってみて、マルチプロジェクト・マルチモジュールな構成を実現します。
この構成により得られる素敵な特典と移行のやり方についてもお話しし、明日からみなさんのプロジェクト構成をアップデートしてもらうことを目指します。


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
Daiki Matsudate

サポートしていただくとコーヒーが飲めます

iOS Developer / Google Developers Expert for Firebase