開発メモ

開発関係のメモをいろいろと。たぶん。

Nifty Cloud Mobile Backendを使ってみる

Nifty Cloud Mobile BackendのSDKをプロジェクトに組み込んで、動作を確認するまでのメモです。

動作を確認した環境

環境 情報
Xcode 7.2.1 (7C1002)
iOS 9.2
Swift 2.1.1
Date 2016/2/14

1. ユーザー登録

以下のサイトにアクセスしてユーザー登録を行います。

mBaaSでサーバー開発不要! | ニフティクラウド mobile backend
http://mb.cloud.nifty.com/

右上の[無料登録]からユーザー登録が出来ます。

@nifty会員でない場合、@nifty会員への登録も必要になります。

2. アプリの新規作成

ユーザー登録が終わってNifty Cloud Mobile Backendにログインすると、いきなり、こんな画面になるかと思われます。

f:id:see_ku:20160214141113p:plain

アプリの名前を入力します。基本的に、Nifty Cloud Mobile Backendの管理画面でアプリを区別するためだけに使用されるようなので、自分がわかりやすければどんな名前でも良いかと思われます。

とりあえず、今回は『NcmbTest01』にしておきました。

3. APIキーをメモ

アプリ名を入力して新規作成を押すと、こんな画面になります。

f:id:see_ku:20160214141132p:plain

あとで必要になるので、アプリケーションキーとクライアントキーをどこかにメモしておきます。

4. SDKをダウンロード

CocoaPods経由でSDKを使う方法もありますが、今回は、Nifty Cloud Mobile BackendのSDKを手動でダウンロードして使用してみます。

SDKGitHubNifty Cloud Mobile Backendのページから落とすことが出来ます。

GitHub - NIFTYCloud-mbaas/ncmb_ios: ニフティクラウド mobile backend iOS SDK
https://github.com/NIFTYCloud-mbaas/ncmb_ios

特にこだわりがなければ、トップページの『Download ZIP』から落とせば良いかと思われます。バージョンを狙い打ちしたい人は、Releaseのページからバージョンを選んでダウンロードしましょう。

今回は『v2.2.5(ncmb_ios-2.2.5.zip)』をダウンロードしました。

5. プロジェクトの作成

Xcodeで適当にプロジェクトを作成します。今回は『Single View Application』のテンプレートから作成しました。

6. SDKの組み込み

まず、ダウンロードしてきたSDKのzipを展開します。それから、zipに入っていたNCMBフォルダを、ファインダーからXcodeのプロジェクトナビゲーターにドラッグ&ドロップします。

f:id:see_ku:20160214141204p:plain

『Copy items if needed』にチェックが入ってるのを確認して登録します。

f:id:see_ku:20160214141222p:plain

7. ブリッジヘッダーの作成/登録

Nifty Cloud Mobile BackendをSwiftから使えるようにするために、ブリッジヘッダーを作成します。

[File] - [New] - [File...]で[Header File]を選択してヘッダーファイルを作成します。ファイルの名前ですが『プロジェクト名-Bridging-Header.h』にしておくのがお約束になっています。

ヘッダーファイルが出来たら、その中で、Nifty Cloud Mobile Backendのヘッダーファイルを読み込むようにしておきます。

#import "NCMB/NCMB.h"

あとは、プロジェクトの設定でブリッジヘッダーを読み込むようにしておきます。プロジェクトの[Build Settings]で[Objective-C Bridging Header]を探して、ブリッジヘッダーを登録します。

f:id:see_ku:20160214141507p:plain

※『プロジェクト名/ブリッジヘッダーのファイル名』の形で登録することに注意

8. サンプルコードの実装

AppDelegateのapplication(application: , didFinishLaunchingWithOptions: )を以下のように書き換えます。

※YOUR_APPLICATION_KEYとYOUR_CLIENT_KEYの部分は、『3. APIキーをメモ』でメモした内容でそれぞれ置き換えてください

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        // アプリケーションキー/クライアントキーを設定
        NCMB.setApplicationKey("YOUR_APPLICATION_KEY", clientKey: "YOUR_CLIENT_KEY")

        // 登録済みのオブジェクトを検索
        let query = NCMBQuery(className: "TestClass")
        query.whereKey("message", equalTo: "Hello, NCMB!")
        query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) in

            if let error = error {
                print("[ERROR] \(error)")
                return
            }

            if objects.count > 0 {

                // オブジェクトが見つかった場合は表示
                if let obj = objects[0] as? NCMBObject {
                    let msg = obj.objectForKey("message")
                    print("[FIND]: \(msg)")
                }

            } else {

                // 見つからなかった場合は新たに登録
                let obj = NCMBObject(className: "TestClass")
                obj.setObject("Hello, NCMB!", forKey: "message")

                var saveError: NSError?
                obj.save(&saveError)
                if saveError == nil {
                    print("[SAVE] Done")
                } else {
                    print("[SAVE-ERROR] \(saveError)")
                }
            }
        }

        return true
    }

※公式のクイックスタートにあるObjective-C版のコードをSwiftに直して、さり気なくバグを取った内容になっています

イントロダクション (iOS) : クイックスタート | ニフティクラウド mobile backend
http://mb.cloud.nifty.com/doc/current/introduction/quickstart_ios.html

9. 実行

プロジェクトをコンパイル&実行します。Nifty Cloud Mobile BackendのSDKで数多くの警告が出ますが、ここは、涙を飲んで諦めます。

正常に動作すれば、1回目の実行でデバッグログに『[SAVE] Done』と出力されるはずです。2回目の実行では『[FIND]: Hello, NCMB!』と出力されます。