【iOS Swift】ニフティクラウドmobile backend を体験しよう!

画像1

概要

ニフティクラウドmobile backendって何??

スマートフォンアプリのバックエンド機能(プッシュ通知・データストア・会員管理・ファイルストア・SNS連携・位置情報検索・スクリプト)が開発不要、しかも基本無料(注1)で使えるクラウドサービス!今回はデータストアを体験します

注1:詳しくはこちらをご覧ください

画像2

動作環境

  • Mac OS X 10.10(Yosemite)
  • Xcode ver. 7.2.1
  • Simulator ver. 9.2
  • iPhone6(iOS 9.2)

※上記内容で動作確認をしています。

手順

1. ニフティクラウドmobile backendの会員登録とログイン→アプリ作成

  • 上記リンクから会員登録(無料)をします。登録ができたらログインをすると下図のように「アプリの新規作成」画面が出るのでアプリを作成します

画像3

  • アプリ作成されると下図のような画面になります
  • この2種類のAPIキー(アプリケーションキーとクライアントキー)はXcodeで作成するiOSアプリにニフティクラウドmobile backendを紐付けるために使用します

画像4

  • この後動作確認でデータが保存される場所も確認しておきましょう

画像5

2. GitHubからサンプルプロジェクトのダウンロード

  • 下記リンクをクリックしてプロジェクトをダウンロードをMacにダウンロードします
  • DB_Swift

3. Xcodeでアプリを起動

  • ダウンロードしたフォルダを開き、「DB_Swift.xcworkspace」をダブルクリックしてXcode開きます(白い方です)

画像09

画像6

  • 「DB_Swift.xcodeproj」(青い方)ではないので注意してください! 画像08

4. APIキーの設定

画像07

  • それぞれYOUR_NCMB_APPLICATIONKEYYOUR_NCMB_CLIENTKEYの部分を書き換えます
  • このとき、ダブルクォーテーション(")を消さないように注意してください!
  • 書き換え終わったらcommand + sキーで保存をします

5. 動作確認

  • 左上の実行ボタン(さんかくの再生マーク)をクリックします

画像12

  • ビルド時にエラーが発生した場合の対処方法

  • Xcodeのバージョンが古い場合import NCMBにエラーが発生し、上手くSDKが読み込めないことがあります

  • その場合は【Swift】SDKの読み込みにuse framework!が使えない場合の対処方法をご覧いただき、別の読み込み方法をお試しください

  • シミュレーターが起動したら画像13ボタンをタップします

  • 動作結果が画面に表示されます

  • 保存に成功した場合:「保存に成功しました。objectId:******

  • 保存に失敗した場合:「エラーが発生しました。エラーコード:******

  • objectIdはデータを保存したときに自動で割り振られるIDです

  • 万が一エラーが発生した場合は、こちらよりエラー内容を確認いただけます 画像1

  • 保存に成功したら、ニフティクラウドmobile backendのダッシュボードから「データストア」を確認してみましょう!

  • TestClassという保存用クラスが作成され、その中にデータが確認できます

解説

サンプルプロジェクトに実装済みの内容のご紹介

SDKのインポートと初期設定

ロジック

  • Main.storyboardでデザインを作成し、ViewController.swiftにロジックを書いています
  • testClassオブジェクトに対してkey, value形式で値をセット(setObject)し、saveInBackgroundWithBlockメソッドを実行すると、非同期にてデータが保存されます
import UIKit
import NCMB

class ViewController: UIViewController {

    // Main.storyboardで作成した「START DEMO」ボタン押下時の処理
    @IBAction func startBtn(sender: UIButton) {
        // 保存先クラスを作成
        let obj = NCMBObject(className: "TestClass")
        // 値を設定
        obj.setObject("Hello,NCMB!", forKey: "message")
        // 保存を実施
        obj.saveInBackgroundWithBlock{(error: NSError!) in
            if (error != nil) {
                // 保存に失敗した場合の処理
                print("エラーが発生しました。エラーコード:\(error.code)")
                self.alertText.text = "エラーが発生しました。エラーコード:\(error.code)"
            }else{
                // 保存に成功した場合の処理
                print("保存に成功しました。objectId:\(obj.objectId)")
                self.alertText.text = "保存に成功しました。objectId:\(obj.objectId)"
            }
        }
    }

    // Main.storyboardで作成した動作確認結果表示用のテキストフィールド
    @IBOutlet weak var alertText: UITextField!
}

参考