【お知らせ】Swift3に対応しました!(2017/02/23更新)
概要
- この記事はSwiftアプリにニフクラ mobile backend (mBaaS)を導入する方法について書いた記事『<CocoaPods>SwiftでmBaaSを始めよう!』のリニューアル版です!!
- さらに簡単にmBaaSが導入できましたのでその方法をご紹介します('▼'*!!!
準備するもの
- Mac
- OS X 10.10(Yosemite)で動作確認しています
- Xcode7, Xcode8
- Ver. 7.2.1, Ver.8.2.1 で動作確認しています
- ニフクラ mobile backend の登録とアプリの新規作成
※使用した環境を記載しています
※上記環境以上でないと動作しない可能性があります。古い環境の場合は、<CocoaPods>SwiftでmBaaSを始めよう!(use_framewoks!を使用しない導入方法)をお試しください!
手順
1. XcodeでSwiftのプロジェクトを作成する
- 既存のプロジェクトを使う場合はとばして下さい
- 作成方法はさまざまなサイトや本に書いてあるかと思いますが、一応簡単なプロジェクトの作成方法を載せておきます
- Xcodeを開き、「File」→「New」→「Project...」を選択します
- iOS下の「Application」→「Singl View Application」選択し、「Next」を選択します
- 「Product Name」を記入し、「Language」は「Swift」を選択してください
- できたら「Next」を選択すると、保存先選択画面が出るので適当な場所に保存をしてください
2. CocoaPodsでiOS用SDKをインストールする
- ターミナルを起動します
- ターミナルはアプリケーション一覧の「その他」の中にあります
- 以下の操作でコマンドを入力します
-
XXX :~ YYY $
のあとに続けて、指定のコマンドの$
以降を入力してください※XXX
とYYY
はユーザー名なのでそれぞれ異なります。ディレクトリを移動すると~
の部分が変わります。
- 1.で作成した新規あるいは既存のプロジェクト内の「プロジェクト名.xcodeproj」と同じディレクトリにターミナル上で移動します(※__大事!__これをやっておかないと失敗します!!)
- 次のコマンドを入力:
$ cd [指定ディレクトリ]
- CocoaPodsを「はじめて使う場合」→ CocoaPodsを__インストール__する
- 次のコマンドを入力:
$ sudo gem install cocoapods
- CocoaPodsを「既にインストールしている場合」→CocoaPodsの__バージョンアップ__をする
- 次のコマンドを入力:
$ sudo gem update --system
- インストールが初めての場合あるいは、アップグレードして最初の起動の場合はセットアップをする
- 次のコマンドを入力:
$ pod setup
- バージョン確認をします
- 次のコマンドを入力:
$ pod --version
- バージョンが表示されればOK!
- Podfile(インストールするライブラリを指定するファイル)を作成します
- 次のコマンドを入力:
$ pod init
- 作成したPodfileを開いて、以下の内容を記述します
- 「
プロジェクト名
」の部分は、作成しているXcodeプロジェクト名を記入してください
Podfile
# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
# Uncomment this line if you're using Swift
use_frameworks!
target 'プロジェクト名' do
pod 'NCMB', :git => 'https://github.com/NIFTYCloud-mbaas/ncmb_ios.git'
end
- workspaceを作成します
- 次のコマンドを入力:
$ pod install --no-repo-update
- 作成された「プロジェクト名.xcworkspace」をダブルクリックしてXcodeを開きます
3. インストールしたSDKを読み込む
-
AppDelegate.swift
ファイルのimport UIKit
の下に、下記の内容を追記します
共通_AppDelegate.swift
import NCMB
※【注意】ViewController.swiftなど他のファイルでSDKを使用する場合は、その対象ファイルにも上記を追記する必要があります!
4. AppDelegate.swift
を編集する
-
ニフクラ mobile backend を使うために必要なAPIキーの設定とSDKの初期化処理は
AppDelegate.swift
ここに書いておきます -
下記のコードを
AppDelegate.swift
に貼り付けてください -
そのとき、2つのAPIキーをニフクラ mobile backend のダッシュボード上からコピーして書き換えてください(※アプリケーションキーとクライアントキーをそれぞれ「
YOUR_NCMB_APPLICATIONKEY
」と「YOUR_NCMB_CLIENTKEY
」の部分に書きます)
Swift3_AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
//********** APIキーの設定 **********
let applicationkey = "YOUR_NCMB_APPLICATIONKEY"
let clientkey = "YOUR_NCMB_CLIENTKEY"
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
//********** SDKの初期化 **********
NCMB.setApplicationKey(applicationkey, clientKey: clientkey)
//▼▼▼起動時に処理される▼▼▼
//▲▲▲起動時に処理される▲▲▲
return true
}
}
Swift2_AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
//********** APIキーの設定 **********
let applicationkey = "YOUR_NCMB_APPLICATIONKEY"
let clientkey = "YOUR_NCMB_CLIENTKEY"
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//********** SDKの初期化 **********
NCMB.setApplicationKey(applicationkey, clientKey: clientkey)
//▼▼▼起動時に処理される▼▼▼
//▲▲▲起動時に処理される▲▲▲
return true
}
}
5. mBaaSのコードを試してみよう!
-
//▼▼▼起動時に処理される▼▼▼
と//▲▲▲起動時に処理される▲▲▲
の間にニフクラ mobile backend のコードを書いてみましょう。didFinishLaunchingWithOptionsは起動時に実行されるメソッドなので、アプリを実行すると動作確認が可能です。 - 下記のサンプルはデータストアにデータを上げるサンプルコードです。実際に書いて(コピペして)実行してみましょう!
Swift3_AppDelegate.swift
//********** データストアにデータを保存 **********
let obj = NCMBObject(className: "TestClass")
obj?.setObject("Hello, NCMB!", forKey: "message")
obj?.saveInBackground({ (error) in
if error != nil {
// 保存に失敗した場合の処理
}else{
// 保存に成功した場合の処理
}
})
Swift2_AppDelegate.swift
//********** データストアにデータを保存 **********
let obj = NCMBObject(className: "TestClass")
obj.setObject("Hello, NCMB!", forKey: "message")
obj.saveInBackgroundWithBlock { (error: NSError!) -> Void in
if error != nil {
// 保存に失敗した場合の処理
}else{
// 保存に成功した場合の処理
}
}
- 実行し、ニフクラ mobile backend のダッシュボードからデータストアを見ると、データが保存されたことが確認できます♪♪