【Swift2 & 3】「ニフティクラウド mobile backend」を試す

ニフティクラウド mobile backend

アプリのバックエンドの機能をサポートするクラウドサービス「ニフティクラウド mobile backend」を試してみました

このサービスを利用すれば、サーバにデータを保存したり、プッシュ通知を送信したりといった、サーバ関連の面倒な処理を簡単に実装できるようになります。自分でサーバを用意したり、サーバに設置するプログラムを書く必要がなくなるわけですね

http://mb.cloud.nifty.com/

APIリクエスト(「サーバにデータを保存しておいて!」とお願いしたりする)が200万回⁄月のBASICは無料、5000万回⁄月のExpartは月30,000円です
とりあえず無料で始められるのはいいですね

詳しい料金はこちらです
料金 | ニフティクラウド mobile backend

ドラクエポータルアプリや、最近流行った「ひとりぼっち惑星」も「ニフティクラウド mobile backend」を利用しているそうですよ!
事例紹介 | ニフティクラウド mobile backend

iOSアプリに組み込んでみた

「クイックスタート」に従って組み込んでみました
この解説通りにすれば、簡単にサーバへのデータ保存が実装できます
イントロダクション (iOS) : クイックスタート | ニフティクラウド mobile backend

ただし、Objective-Cのプロジェクトに組み込む事を想定した説明なので、Swiftを使っている場合は説明を若干読み替えて進める必要があります

今回は「Test」という名前でSwiftプロジェクトを作成、ニフティクラウドのSDKはダウンロードして組み込む形で実装しました

以下、Swiftプロジェクトに組み込む場合の変更箇所です

ブリッジングヘッダファイルを作る

クイックスタートの「SDKの読み込み」のセクションを以下の方法に変更する必要があります

Swiftから直接Objective-CのSDKのヘッダファイルは読み込めないので、ブリッジングヘッダという特殊なヘッダファイルを作ります

ヘッダファイルの名前はなんでもいいみたいですが、Xcodeが自動生成する場合は、
{ProductModuleName}-Bridging-Header.h
という名前になるので、それに合わせた名前でヘッダファイルを作ります
今回は「Test-Bridging-Header.h」です

できたら「Build Setting」の「Swift Compiler」の「Objectve-C Bridging Header」に今回作成したブリッジングヘッダファイルのパスを設定します
今回は「Test/Test-Bridging-Header.h」です

ニフティクラウド mobile backend

ブリッジングヘッダファイルを編集する

作成したブリッジングヘッダに、ニフティクラウドSDKのヘッダファイル読み込みのコードを追加します
CocoaPodsとSDKを手動で組み込んだ場合とではimport文が異なります

// CocoaPodsを利用する方法
#import <NCMB/NCMB.h>

// SDKをダウンロードして利用する方法
#import "NCMB/NCMB.h"

今回はSDKをダウンロードして組み込んだので

#ifndef Test_Bridging_Header_h
#define Test_Bridging_Header_h

#import "NCMB/NCMB.h" // #import "NCMB.h"でいいかも?

#endif /* Test_Bridging_Header_h */

です

AppDelegateに処理を追加

AppDelegate.swiftのapplication:didFinishLaunchingWithOptions:にコードを実装します
Swiftだとこんな感じ
YOUR_APPLICATION_KEYとYOUR_CLIENT_KEYは自分のキーに変更してください

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

        // APIキーの設定とSDK初期化
        NCMB.setApplicationKey("YOUR_APPLICATION_KEY", clientKey: "YOUR_CLIENT_KEY")
        
        // クラスのNCMBObjectを作成
        let object = NCMBObject(className: "TestClass")
        object.setObject("Hello, NCMB!", forKey: "message")
        object.saveInBackgroundWithBlock { (error: NSError!) in
            if error != nil {
                // 保存に失敗した場合の処理
                print( "失敗" )
            } else {
                // 保存に成功した場合の処理
                print( "成功" )
            }
        }
        return true
}

Swift3だとこうなります

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // APIキーの設定とSDK初期化
        NCMB.setApplicationKey("YOUR_APPLICATION_KEY", clientKey: "YOUR_CLIENT_KEY")
        
        // クラスのNCMBObjectを作成
        let object = NCMBObject(className: "TestClass")
        object?.setObject("Hello, NCMB!", forKey: "message")
        object?.saveInBackground { (error: Error?) in
            if error != nil {
                // 保存に失敗した場合の処理
                print( "失敗" )
            } else {
                // 保存に成功した場合の処理
                print( "成功" )
            }
        }
        return true
}

これを実行すれば、「Hello, NCMB!」というテキストデータがサーバに保存されます

ニフティクラウド mobile backend

めちゃくちゃ簡単ですね。機会があれば利用してみようと思います

タイトルとURLをコピーしました