0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

NCMBのSwift SDKを使ってmacOS用CLIアプリケーションを作る

Last updated at Posted at 2021-08-02

XcodeではCLI(コマンドラインインタフェース)なアプリを開発できますが、その中でもNCMBのSwift SDKを使ってみます。これができれば、ちょっとした管理用ツールを作るのが手軽になるでしょう。

プロジェクトを作る

Xcodeでの新規プロジェクト作成時にCommand Line Toolを選択します。

ScreenShot_ 2021-08-02 9.56.29.png

SDKのインストール

NCMBのSwift SDKをインストールするのはSwift Packagesを使うのが簡単でしょう。FileメニューからSwift Packages > Add Package Dependencyと選択します。

ScreenShot_ 2021-08-02 9.35.23.png

出てきたダイアログでSwift SDKのGitリポジトリURLを入力します。GitHubのリポジトリでHTTPSとして取得できるもの、または下記URLになります。

ScreenShot_ 2021-08-02 9.35.56.png

https://github.com/NIFCLOUD-mbaas/ncmb_swift.git

バージョンは最新のものでかまいません。

ScreenShot_ 2021-08-02 9.36.05.png

後はFinishボタンを押せば完了です。

ScreenShot_ 2021-08-02 9.36.40.png

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を役立ててください!

mBaaSでサーバー開発不要! | ニフクラ mobile backend

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?