※こちらはニフティ(株)として公式にサポートされる内容ではないのでご注意の上参考にしてください。
ニフティクラウド mobile backendを使えるようにする手順としては次のようになっています。
- ニフティクラウド mobile backendにユーザ登録する
- Xcodeで新規プロジェクトを作成する
- JSONKit/Facebook iOS SDKをダウンロード、インポートする
- 最新のニフティクラウド mobile backend iOS SDKをダウンロード、インポートする
- 依存するフレームワークを追加する
- JSONKitのコードを一部修正する
- アプリのコードを書く
1と2、そして7の手順は絶対なのですが、3〜6の手順が面倒です。ここ最近はCocoaPodsを使ってライブラリを管理するのが一般的になっていますので、ニフティクラウド mobile backend iOS SDKも一緒に管理できるようにしたいところです。
ということで本家に取り込まれた訳ではなく野良ですが、podspecファイルを作成してみました。これからiOSアプリでニフティクラウド mobile backendをはじめてみようかなと思う方はぜひ参考にしてみてください。
Podfileの内容
Podfileの内容は次のようになります。post_installのブロックはJSONKitのための変更になります。
post_install do |installer_representation| installer_representation.project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['CLANG_WARN_DIRECT_OBJC_ISA_USAGE'] = 'YES' end end end platform :ios, "7.0" pod 'NCMB-iOS-SDK', :podspec => 'https://gist.githubusercontent.com/moongift/3a4d04e2db87d70a5320/raw/f6ec48dbbc977aca1310828d8d5bee16449c335c/NCMB.podspec'
podspecファイル内では最新のiOS SDKをダウンロードして配置し、依存するフレームワークの追加とFacebook iOS SDK、JSONKitの設定を行っています。
iOSプロジェクトのルートにてPodfileを追加したら、後は普段通り pod install を実行します。
$ pod install Analyzing dependencies Fetching podspec for `NCMB-iOS-SDK` from `https://gist.githubusercontent.com/moongift/3a4d04e2db87d70a5320/raw/f6ec48dbbc977aca1310828d8d5bee16449c335c/NCMB.podspec` Downloading dependencies Installing Facebook-iOS-SDK (3.13.1) Installing JSONKit (1.5pre) Installing NCMB-iOS-SDK (1.2.6) Generating Pods project Integrating client project [!] From now on use `TestApp3.xcworkspace`.
このように表示されればインストール完了です。
後は以前に書いた記事の通り、AppDelegate.m にて #import <NCMB/NCMB.h> を記述して、Web管理コンソールで取得できるアプリケーションキーとクライアントキーでニフティクラウド mobile backendが使えるようになります!
// AppDelegate.mの修正例。 #import <NCMB/NCMB.h> : - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [NCMB setApplicationKey:@"your_application_key" clientKey:@"your_client_key"]; NCMBQuery *query = [NCMBQuery queryWithClassName:@"TestClass"]; [query whereKey:@"message" equalTo:@"test"]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (error == nil) { if ([objects count] > 0) { NSLog(@"[FIND] %@", [[objects objectAtIndex:0] objectForKey:@"message"]); } else { NSError *saveError = nil; NCMBObject *obj = [NCMBObject objectWithClassName:@"TestClass"]; [obj setObject:@"Hello, NCMB!" forKey:@"message"]; [obj save:&saveError]; if (saveError == nil) { NSLog(@"[SAVE] Done"); } else { NSLog(@"[SAVE-ERROR] %@", saveError); } } } else { NSLog(@"[ERROR] %@", error); } }]; return YES; }
CocoaPodsベースであればすぐに使い始められますし、環境設定でハマったりすることも減るかと思います。参考にしてみてください!
アプリ開発をよりスマートに、スピーディに | ニフティクラウド mobile backend
参考にした記事
- iOS - 自前のライブラリをCocoaPodsで管理するメモ - Qiita
- AppSocially SDK が CocoaPods に対応しました - Over&Out その後
- CocoaPods Guides - Podspec Syntax Reference
ニフティクラウド mobile backendはサーバー構築知識がなくともはじめられるバックエンドクラウドサービス「mBaaS」です。アカウントを取るのも含めて5分で利用開始できますのでぜひお試しを!記事にあったような、ニフティクラウド mobile backend iOS SDKを使えば開発環境もサーバサイドの仕組みもなしでスマートフォンアプリ開発がはじめられますよ!