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は以下のようになります.

1
import LilySwiftForPlayground

純粋にSwiftファイルのみで作られているため, Playgroundsで利用できるようになりました.

Metalはmetalファイルを用いず文字列データから作成するようにしています(Metalの実行時ビルド). 文字列からの実行は, metalファイルより性能が少し劣る, Appを起動した時にロスがあるなどのデメリットがありえますが, Playgroundsで動作させることができる点が何よりのメリットとなります.

余談ですが,あくまでSwiftだけで構成されているパッケージなのでXcodeでも使うことができます.

LilySwiftパッケージ

以上の事情から, LilySwiftはXcode専用のパッケージになります.

利用する時のimportは以下のようになります.

1
import LilySwift

Xcodeで使う前提となりますが, Swift以外のファイルを含めることができるためMetalの性能を引き出せる, その他のファイルを柔軟に扱えるなどの幅広いメリットがあります.

使い分け

2021年からPlaygroundsでもApp開発・公開ができるようになりました. 特にiPadのみでAppが提供できるようになったのは革命的です. よって以上で紹介した2つのパッケージは以下のように使い分けていただければと思います.

  • とりあえず試したい → LilySwiftForPlayground
  • iPadでApp開発・公開したい → LilySwiftForPlayground
  • MacだがPlaygroundsで開発したい → LilySwiftForPlayground
  • MacでXcodeで開発したい → LilySwift