2023年12月現在, LilySwiftのパッケージは2つあります. 環境による違いについてご説明します.
環境
- iPad
- iPadOS 17.1
- Swift Playgrounds 4.4
- Mac
- macOS Sonoma 14.2.1
- Xcode 15.0
- Swift Playgrounds 4.4
SwiftパッケージとPlaygrounds
Swift Package Managerは, PlaygroundsとXcodeの双方で利用することができます. このパッケージはswiftファイル以外にもアセット画像やmetalファイル,ビルド済みのライブラリやフレームワークを組み込めるようになっています.
しかし, PlaygroundsではSwift以外のファイルを解釈したり処理することができません. 例えばgithubでは定番のREADME.mdやLICENSEも場合によってエラーの原因になりえます. LilySwiftではMetalを使っていますが, .metalのファイルも使うことができません.
Playgroundsで動作させることができるのはあくまでswiftファイルのみと考えたほうがよさそうです.
LilySwiftForPlaygroundパッケージ
そこでPlaygrounds向けにswiftファイルのみで構成しなおしたのがLilySwiftForPlaygroundです.
利用する時のimportは以下のようになります.
|
|
純粋にSwiftファイルのみで作られているため, Playgroundsで利用できるようになりました.
Metalはmetalファイルを用いず文字列データから作成するようにしています(Metalの実行時ビルド). 文字列からの実行は, metalファイルより性能が少し劣る, Appを起動した時にロスがあるなどのデメリットがありえますが, Playgroundsで動作させることができる点が何よりのメリットとなります.
余談ですが,あくまでSwiftだけで構成されているパッケージなのでXcodeでも使うことができます.
LilySwiftパッケージ
以上の事情から, LilySwiftはXcode専用のパッケージになります.
利用する時のimportは以下のようになります.
|
|
Xcodeで使う前提となりますが, Swift以外のファイルを含めることができるためMetalの性能を引き出せる, その他のファイルを柔軟に扱えるなどの幅広いメリットがあります.
使い分け
2021年からPlaygroundsでもApp開発・公開ができるようになりました. 特にiPadのみでAppが提供できるようになったのは革命的です. よって以上で紹介した2つのパッケージは以下のように使い分けていただければと思います.
- とりあえず試したい → LilySwiftForPlayground
- iPadでApp開発・公開したい → LilySwiftForPlayground
- MacだがPlaygroundsで開発したい → LilySwiftForPlayground
- MacでXcodeで開発したい → LilySwift