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です.
LilySwiftForPlayground(github) 利用する時のimportは以下のようになります.
1 import LilySwiftForPlayground 純粋にSwiftファイルのみで作られているため, Playgroundsで利用できるようになりました.
Metalはmetalファイルを用いず文字列データから作成するようにしています(Metalの実行時ビルド). 文字列からの実行は, metalファイルより性能が少し劣る, Appを起動した時にロスがあるなどのデメリットがありえますが, Playgroundsで動作させることができる点が何よりのメリットとなります.
余談ですが,あくまでSwiftだけで構成されているパッケージなのでXcodeでも使うことができます.
LilySwiftパッケージ 以上の事情から, LilySwiftはXcode専用のパッケージになります.
LilySwift(github) 利用する時のimportは以下のようになります.
1 import LilySwift Xcodeで使う前提となりますが, Swift以外のファイルを含めることができるためMetalの性能を引き出せる, その他のファイルを柔軟に扱えるなどの幅広いメリットがあります.
使い分け 2021年からPlaygroundsでもApp開発・公開ができるようになりました. 特にiPadのみでAppが提供できるようになったのは革命的です. よって以上で紹介した2つのパッケージは以下のように使い分けていただければと思います.
とりあえず試したい → LilySwiftForPlayground iPadでApp開発・公開したい → LilySwiftForPlayground MacだがPlaygroundsで開発したい → LilySwiftForPlayground MacでXcodeで開発したい → LilySwift