前作:

isowordsに学ぶプロジェクト構成

mintやめてSwiftPMにしました

isowordsのプロジェクト構成や、SwiftPMでCLIを利用するような状況を総合すると、Xcodeのプロジェクト構成を大きくアップデートすることができそうです。

AppDelegateや@mainのついたApp.swiftのようなエントリーポイント以外のViewやロジックコードをPackageに閉じ込めることによって、プロジェクトが参照すべきファイルの数はグッと減りました。

具体的にはInfo.plist、App.swift、Assets.xcassets、Entitlementsのみです。

これにより、iOS AppやApp Clips などのプロダクトを柔軟に構成することが可能となります。

Build Configurationを汚染したくない

さて、サーバーの接続先をわけるために、私たちはStaging / ProductionのようなBuild Configurationをつくります。しかし、Build Configurationをカスタマイズすることで、依存しているライブラリやApp Extensionなどで問題が発生することがわかっています。

https://twitter.com/k_katsumi/status/1336331476212695048?s=20

本件に関しては岸川さんが詳細に解説をしてくれています。

(ここにブログのリンクを貼る)

こういった問題を解決するために、複雑化したプロジェクトファイルを人間が読みやすい形式で再構成可能にしたのがXcodeGenというツールです。

yonaskolb/XcodeGen