iPadOS 15.2を使って「iPadだけで」iOSアプリを開発する！

iPadOS 15.2がリリースされました。各種のセキュリティアップデートなどもあるのですが、個人的な目玉機能はSwift Playgroundsアプリがコードエディタに対応し、ちゃんとしたアプリまで開発できるようになったことです！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/7cf2ea7b-8750-5cb7-045b-a1a6c611ed64.png)

[Swift Playgrounds - Apple（日本）](https://www.apple.com/jp/swift/playgrounds/)

[Apple、iPadで本格的なモバイルアプリ開発が行える「Swift Playgrounds 4」をリリース - 窓の杜](https://forest.watch.impress.co.jp/docs/news/1374621.html)

Swift Packagesにも対応したので、今回はSwift Packagesファーストインプレッションとして、NCMBでのデータ保存を試してみました。

## 要件

- iPadOS 15.2へのアップデート
- Swift Playgrounds 4のインストール

## アプリのベースを作成

Swift Playgrounds 4を立ち上げると、右下にAppが表示されていますので、これをタップします。

![IMG_0010.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/1c616faf-938c-f60a-41e4-b68ba9d57cc4.png)

マイ Appができるので、これをタップします。

![IMG_0011.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/73a5fb8c-56a8-1505-2ecf-9f36c8cc9857.png)

普通にコードエディタが立ち上がります。

![IMG_0012.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/1f9fcf07-de67-a12b-a46d-6a0e0fbd8da7.png)

## Swift Packagesの追加

左側のメニューにSwiftパッケージという項目があるので、これを選びます。

![IMG_0013.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/27e3686e-42c3-7baf-d26e-70c4eee78d1a.png)

URLに `https://github.com/NIFCLOUD-mbaas/ncmb_swift` を入力します。もしバージョンタグがありませんといったメッセージが出る場合には `https://github.com/NCMBMania/ncmb_swift` を入力してください。これはSwift Packagesのバージョンタグが `9.9.9` 形式のみサポートされており、これまでSwift SDKが `v9.9.9` で管理していたための不一致です。早々に変更予定です。

![IMG_0016.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/00bea4e1-de98-a597-219a-5495724e42c3.png)

プロジェクトに追加すればNCMBが使えるようになります。

## NCMBの設定

まず[ニフクラ mobile backend](https://mbaas.nifcloud.com/)にてアプリケーションキーとクライアントキーを取得します。

![IMG_0017.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/4d97c09a-ec77-e030-a3d7-3a158846b8b6.jpeg)

ContentViewにinitメソッドを追加して、その中でNCMBを初期化します。まずSDKをインポートします。

```swift
import NCMB
```

次にinit内で初期化処理を書きます。 `YOUR_APPLICATION_KEY` と `YOUR_CLIENT_KEY` はそれぞれ皆さんのものに書き換えてください。

```swift
NCMB.initialize(applicationKey: "YOUR_APPLICATION_KEY", clientKey: "YOUR_CLIENT_KEY")
```

これで準備完了です。

## ボタンを置く

適当なボタンを置いて、それのアクションとしてデータストアにデータを保存してみます。

```swift
// クラスのNCMBObjectを作成
let obj : NCMBObject = NCMBObject(className: "Hello")
// オブジェクトに値を設定
obj["msg"] = "こんにちは、世界！"
// データストアへの登録
obj.save()
```

![IMG_0018.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/c70e3dd7-1da6-2c21-3445-e6b6b47a21e3.jpeg)


## 実行する

上にある実行ボタンをタップするとiPad上でちゃんとアプリが実行されます。

![IMG_0019.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/d269e41a-7ea5-29da-9323-774d605a9352.png)

タップして、Safariの画面を出してみると、ちゃんとデータが登録されているのが確認できます。

![IMG_0020.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/9a92d676-0c14-739a-17fa-a8d94119af41.png)


## 体感

- ちゃんと開発できる、Swift Packagesに対応しているのが凄い！
- ちゃんとやるなら外付けキーボード必須（今回は利用しています）
- 外付けディスプレイまであれば、結構使えそうな予感

## まとめ

Swift PlaygroundsであればXcodeのインストールほど敷居は高くないですし、PCはWindowsという方でも開発がはじめられるのは便利そうです。アプリとして提出もできて、とても面白い開発環境ですね。

ぜひNCMBのSwift SDKと一緒に試してみてください！

[イントロダクション (Swift) : クイックスタート | ニフクラ mobile backend](https://mbaas.nifcloud.com/doc/current/introduction/quickstart_swift.html#Swift%20Packages%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)