XcodeではCLI(コマンドラインインタフェース)なアプリを開発できますが、その中でもNCMBのSwift SDKを使ってみます。これができれば、ちょっとした管理用ツールを作るのが手軽になるでしょう。
プロジェクトを作る
Xcodeでの新規プロジェクト作成時にCommand Line Toolを選択します。
SDKのインストール
NCMBのSwift SDKをインストールするのはSwift Packagesを使うのが簡単でしょう。FileメニューからSwift Packages > Add Package Dependencyと選択します。
出てきたダイアログでSwift SDKのGitリポジトリURLを入力します。GitHubのリポジトリでHTTPSとして取得できるもの、または下記URLになります。
https://github.com/NIFCLOUD-mbaas/ncmb_swift.git
バージョンは最新のものでかまいません。
後はFinishボタンを押せば完了です。
Swift SDKの修正
実はそのままでは使えないので NCMB/service/NCMBFileService.swift
を開きます。そして MobileCoreServices
をインポートしないようにします。
import Foundation
// import MobileCoreServices
使い方
実際のコードです。まず Swift SDKをインポートします。
import Foundation
import NCMB // 追加
そして初期化します。初期化時のキー(アプリケーションキーとクライアントキー)はNCMBの管理画面より取得してください。
NCMB.initialize(applicationKey: "YOUR_APPLICATION_KEY", clientKey: "YOUR_CLIENT_KEY")
注意点としては、NCMBはネットワーク処理が基本なので、非同期処理になるということです。そこで DispatchGroup
を使っていきます。
let dispatchGroup = DispatchGroup()
非同期処理の開始時に実行します。
dispatchGroup.enter()
NCMBの処理を書いていきます。
// クラスのNCMBObjectを作成
let object : NCMBObject = NCMBObject(className: "TestClass")
// オブジェクトに値を設定
object["message"] = "Hello, NCMB!"
// データストアへの登録
object.saveInBackground(callback: { result in
switch result {
case .success:
// 保存に成功した場合の処理
print("保存に成功しました")
// 非同期処理を抜ける
dispatchGroup.leave()
case let .failure(error):
// 保存に失敗した場合の処理
print("保存に失敗しました: \(error)")
}
})
すべての非同期処理が終わったタイミングで dispatchGroup.notify
が呼ばれます。
dispatchGroup.notify(queue: DispatchQueue.main) {
print("Hello, World!")
exit(EXIT_SUCCESS)
}
後は処理の開始です。
dispatchMain()
これでCLIとして、NCMBを使えるアプリケーションができあがります。
まとめ
コマンドライン引数を扱う場合には Commander などを使えば良いでしょう。より複雑な処理を行う際には、Swift SDKの同期処理メソッドを使ってください。
ぜひCLIでもNCMBを役立ててください!