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にログインすると、いきなり、こんな画面になるかと思われます。
アプリの名前を入力します。基本的に、Nifty Cloud Mobile Backendの管理画面でアプリを区別するためだけに使用されるようなので、自分がわかりやすければどんな名前でも良いかと思われます。
とりあえず、今回は『NcmbTest01』にしておきました。
3. APIキーをメモ
アプリ名を入力して新規作成を押すと、こんな画面になります。
あとで必要になるので、アプリケーションキーとクライアントキーをどこかにメモしておきます。
4. SDKをダウンロード
CocoaPods経由でSDKを使う方法もありますが、今回は、Nifty Cloud Mobile BackendのSDKを手動でダウンロードして使用してみます。
SDKはGitHubのNifty 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のプロジェクトナビゲーターにドラッグ&ドロップします。
『Copy items if needed』にチェックが入ってるのを確認して登録します。
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]を探して、ブリッジヘッダーを登録します。
※『プロジェクト名/ブリッジヘッダーのファイル名』の形で登録することに注意
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!』と出力されます。