Swiftは進化の速いプログラミング言語で、ほぼ毎年メジャーアップデートをしています。mBaaSでは今なおObjective-Cで書かれたSDKを提供していますが、とは言え、Objective-CからSwiftに乗り換えたiOSアプリ開発者も増えていますので、徐々にSwift × mBaaSの情報も増やしていかなければなりません。
ということで今回はCocoaPodsを使ったGetting Startedを紹介します。
Xcodeプロジェクトを作る
まずはベースになるXcodeプロジェクトを作ります。これは言語としてSwiftを選択する以外、特別なことはしません。
ブリッジファイルを作る
Objective-Cで作られたフレームワークをSwiftで使えるようにするためにブリッジファイルを作成します。Xcodeで新規 Header File ファイルを作成します。名前は プロジェクト名-Bridging-Header.h
が良いでしょう。
内容は以下のようになります。
// // HelloNCMB-Bridging-Header.h // HelloNCMB // // #ifndef HelloNCMB_Bridging_Header_h #define HelloNCMB_Bridging_Header_h #import <NCMB/NCMB.h> #endif /* HelloNCMB_Bridging_Header_h */
NCMBのSDKをインストールする
Carthage を使う方法もありますが、対応していないフレームワークもあるので CocoaPods を使います。
CocoaPodsをインストール
Rubygemsを使います。Rubyはすでにインストールされていることとします。
gem install cocoapods pod setup cd (Xcodeプロジェクトのディレクトリ) pod init
プラグインをインストール
mBaaSでは認証キーを扱うので、それを直接ハードコーディングするのは好ましくありません。そこで cocoapods-keys
を使います。
Gemfileを作成して、内容を次のようにします。
source 'https://rubygems.org' gem 'cocoapods-keys'
そしてインストールします。
bundle install
Podfileを作る
Podfileを以下の内容で作成します。 (プロジェクト名)
となっている部分はそれぞれ読み替えてください。
# Uncomment the next line to define a global platform for your project platform :ios, '9.0' target '(プロジェクト名)' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for (プロジェクト名) pod 'NCMB', :git => 'https://github.com/NIFCloud-mbaas/ncmb_ios.git' target '(プロジェクト名)Tests' do inherit! :search_paths # Pods for testing end target '(プロジェクト名)UITests' do inherit! :search_paths # Pods for testing end end plugin 'cocoapods-keys', { :project => "(プロジェクト名)", :keys => [ "applicationKey", "clientKey" ]}
SDKのインストール
pod install
でSDKのインストールを行います。この時、 cocoapods-keys
が対話的にキーを保存してくれます。
pod install CocoaPods-Keys has detected a keys mismatch for your setup. What is the key for applicationKey > e61...669 Saved applicationKey to HelloNCMB. What is the key for clientKey > 65c...247 Saved clientKey to HelloNCMB. Analyzing dependencies Fetching podspec for `Keys` from `Pods/CocoaPodsKeys` Downloading dependencies Using Keys (1.0.1) Using NCMB (2.4.3) Generating Pods project Integrating client project Sending stats
ブリッジヘッダーファイルを指定する
Build Settingsの Object-C Bridging Header
の項目で先ほど作ったブリッジヘッダーファイルを指定します。例えば ./HelloNCMB/HelloNCMB-Bridging-Header.h
といった具合です。
コードを書く
キーを読み込む
AppDelegate.swift にてキーを読み込みます。 (プロジェクト名)Keys()
という関数が定義されています。例えば以下のようになります。
import Keys let keys = HelloNCMBKeys()
これで keys.applicationKey
といった形でアクセスできます。
NCMBを初期化する
まずNCMBを初期化します。
NCMB.setApplicationKey(keys.applicationKey, clientKey: keys.clientKey)
データストアのオブジェクトを作成
次にデータストアのオブジェクトを作成します。今回は TestClass としています。
let obj = NCMBObject(className: "TestClass")
値を設定する
オブジェクトに値を設定します。
obj?.setObject("Hello, NCMB!", forKey: "createDate")
保存する
オブジェクトの保存は同期、非同期の指定ができます。今回は非同期で保存します。
obj?.saveInBackground({ (err) in if err != nil { print(err?.localizedDescription ?? ""); } else { print("Saved"); } })
まとめ
使い方は簡単ですが、最初のセットアップ時においてブリッジヘッダーファイルを作成、読み込まなければならないのが注意点です。この辺りもXcodeのバージョンによって異なるので、新しいバージョンが出るとやり方が変わる可能性があります。現状、最新版のXcode9.4ではこのように指定します。
iOSアプリでmBaaSを使う際には参考にしてください。