初めに
まず最初に Xcode の Playground とは違います のでmm
今回は Swift Playgrounds でアプリを開発する場合のお話です。
Swift Playgrounds とは
2016年に登場した iPad 上で Swift を学習できるアプリです。
当初はテンプレートの教材を Swift で学習するだけでした。
現在はバージョンが4.1
までリリースされており、iPad のみならず Mac 上でも動作し、実際にリリースできるアプリが作成できるまでになりました。
どんなことができるの?
iOSDC Japan 2022 で LT をしました!
資料をあげたので、見ていただけると少しは理解が深まるかと思いますmm
Git での管理方法
少しクセがあるので、今回は記事として残しました。
iCloud と併用しない場合
- Mac のみでしか開発しない
- 個人でしか開発しない
そういった方には特に特別なことは必要ありません。
好きなように自分のディレクトリで管理してください。笑
iCloud と併用する場合
今回はこちらの説明が主になります。
Swift Playgrounds は iCloud
で管理する前提のツールです。iCloud
が使えることで、家では Mac で開発しつつ出先では iPad で開発できるなどのメリットがあります。
iCloud
で共有できるため、通常は Git
管理を必要としないのですが、他者とプロジェクトを共有したいことはあるでしょう。その場合は、iCloud
のために Apple アカウントを教えるわけにはいかないので、Git
で管理することになります。
Git ファイルの設置
手順1
ローカルで Git
管理、または GitHub
を使ってリモートで管理する場合、いずれも Git
ファイルが必要なので、あらかじめ用意してください。
手順2
以下は開く方法の例です。
Swift Playgrounds からプロジェクトのあるディレクトリを開きます。
そのままルートに設置しましょう。
あとは、Terminal でプロジェクトに移動して、Git
の操作を実行してください。
GitHub を使う場合の注意点
GitHib
での管理方法には、いくつかの問題発生するので、それを記載しておきます。
- プロジェクトの Clone の仕方
実際のプロジェクトを例にしたいと思います。
Git
を Swift Playgrounds のアプリ内部に設置したため、ディレクトリはこのような形になるでしょう。
これを他者に使ってもらう場合、clone の段階で1つのファイル(Swift Playgrounds のファイル)にする必要があります。なので、以下のように .swiftpm
拡張子をつけて clone をする必要があります。
example
$ git clone https://github.com/crane-hiromu/PadOSDC_Japan_App PadOSDC.swiftpm
こうすることで、すぐに動作するアプリを clone することができます。
プロジェクトの Readme などに書いておくと良いでしょう。
- Package.resolved の扱い
Package.resolved
は Git
で管理しましょう。
Swift Playgrounds 4.1 のバグとして、Package.resolved
がないと、Mac でプロジェクトを開く場合にクラッシュするからです。
もし、Package.resolved
を管理したくない場合は、以下をすることで解決できます。
- iPad でアプリを起動する
- Xcode でアプリを起動する
いずれかを1度でも行うことで、内部的に Package.resolved
が作られるため、以降は Mac の Swift Playgrounds でも開けるようになります。
- Terminal の挙動
Terminal からプロジェクトに入り、 Git
の操作をするでしょう。
その際、コマンドが一体効かなくなることがあります。
その場合は、一度ディレクトリを戻り、再度入り直すことで操作がし直せるようになります。
iPad のみで完結させる場合
以下のようなツールを使うことで Git
の操作が可能になります。
- a-shell
iPhone や iPad 上でコマンドやプログラムを実行できるターミナルアプリ
- Working Copy
iOS 用の強力な Git クライアントアプリ
終わりに
Xcode の進化を見ると、いずれは Swift Playgrounds も Git
に対応してほしいなとは思いつつ...
現状は iCloud
もあるため、しばらくはないかなと思っています。
リポジトリ
以下に導入したアプリがあるので、参考程度に見ていただけますと🙏
その他
関連記事はこちら